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 하는것이 아니라
기존에 데이터를 업데이트를 하는것이다
이를 잘 고려해 사용해야 한다.
'개발 > MYSQL' 카테고리의 다른 글
[mysql ]D-day 계산 쿼리 (0) | 2020.04.08 |
---|---|
[mysql] 분기별 / 년도별 계산 (0) | 2020.01.22 |
MYSQL 날짜관련 쿼리 (0) | 2019.12.06 |
SQL로 특정 데이터만 우선 정렬 (0) | 2019.06.12 |
ajax :: form을 배열로 담아서 통채로 옮겨보자 (0) | 2019.03.15 |