본문 바로가기
개발/MYSQL

기존에 값이 있을때는 update 없을때는 insert 하는 방법

by 똘또히 2019. 12. 10.

INSERT 

INTO users (NAMEemail) 

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 하는것이 아니라

기존에 데이터를 업데이트를 하는것이다


이를 잘 고려해 사용해야 한다.