-
mysql insert시 중복값 처리 두가지 (중복시 업데이트)NULL STACK 2019. 4. 26. 10:22반응형
1. PK가 있을 경우 ( ON DUPLICATE KEY UPDATE )
(insert sql) + ON DUPLICATE KEY UPDATE + 컬럼명1 = ?, 컬럼명2=?;
id : PK
해당 PK가 테이블에 있을때 변경을 원하는 컬럼을 뒤에 나열해준다.
테이블에 PK가 없으면 앞의 데이터를 넣어주는듯.
sql = 'insert into table01 (`id`,`name`,`age`) values ( ?, ?, ? ) ON DUPLICATE KEY UPDATE name = ?, age = ? ';
2. PK가 없을 경우 ( NOT EXISTS )
해당 데이터가 없으면 데이터를 입력해준다.
sql = 'INSERT INTO likes(id,name) SELECT ?, ? FROM DUAL WHERE NOT EXISTS (SELECT id, name FROM table01 WHERE id = ? and name = ?)'
반응형