- 정보공유
[SQL] 중복키관리 ON DUPLICATE KEY UPDATE
중복값 등록 방지를 위해서 아래와같은 방법을 사용한다.
보통 select 한다음 값이 있는경우 update 값이 없는경우 insert 하는 방법을 사용하는데
아래와 같이 한줄로 처리가 가능하다.
----------------------------------------------------
INSERT INTO table_name (column1, column2, column3, column4) values ('AA', '111', '333', '444') ON DUPLICATE KEY UPDATE column3 = '333', column4 = '444';
또는
INSERT INTO table_name (column1, column2, column3, column4) values ('AA', '111', '333', '444') ON DUPLICATE KEY UPDATE column3 = VALUES(column3), column4 = VALUES(column4);
----------------------------------------------------
위 구문을 사용하기 위해서는 중복이 되면 안되는 컬럼을 unique 키로 등록해야 합니다.
추가
ALTER TABLE table_name ADD UNIQUE uk_name (column1, column2);
삭제
ALTER TABLE table_name DROP INDEX uk_name
그외에
INSERT IGNORE, REPLACE INTO 도 참고바람.