Insert into ~ on duplicate key update
INSERT INTO tableA (sn, cateid, catename) VALUES
(101, 'A001', 'CateA1'),
(102, 'B001', 'CateB1'),
(103, 'C001', 'CateC1'),
(104, 'C002', 'CateC2C'),
ON DUPLICATE KEY UPDATE catename = (CASE WHEN catename = 'C002' THEN catename ELSE values(catename) END);
replace
REPLACE INTO tableA (sn, cateid, catename) VALUES
(101, 'A001', 'CateA1'),
(102, 'B001', 'CateB1'),
(103, 'C001', 'CateC1'),
(104, 'C002', 'CateC2C');
on duplicate key update의 경우 기존 row에서 update를 하지만,
replace into 는 delete + insert이기 때문에 default 필드 또는 auto_increment 필드는 신규 로우를 추가한 것과 같은 영향을 받음.
https://giipasp.azurewebsites.net/
댓글
댓글 쓰기