개발/MYSQL
기존에 값이 있을때는 update 없을때는 insert 하는 방법
똘또히
2019. 12. 10. 10:09
INSERT
INTO users (NAME, email)
VALUES ('name', 'email@email.kr')
ON DUPLICATE KEY UPDATE name='test', email='test@test';
위 구분을 처음 실행하면
name 필드에 name
email 필드에 email@email.kr 이 등록이 된다
한번 더 insert 할 경우 당연히 중복 컬럼이 발생한다.
이 경우, 중복을 방지 하기 위해
ON DUPLICATE KEY UPDATE name='test', email='test@test';
위 구분은 중복이 발생 할 경우 update 를 위와 같은 데이터로 변경하여 업데이트를 한다
즉 다시 말하자면 기존에 중복이 있기때문에 새로운 이름으로 insert 하는것이 아니라
기존에 데이터를 업데이트를 하는것이다
이를 잘 고려해 사용해야 한다.