mysql replace 안될 때

  • ON DUPLICATE KEY 를 사용한다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
INSERT INTO
department (
`departmentId`,
`companyId`,
`name`,
`memo`,
`parentId`
)
VALUES
(?, ?, ?, ?, ?,) ON DUPLICATE KEY
UPDATE
name = ?,
memo = ?,
parentId = ?;

상황

  • 제약 조건이 걸려있는 pk를 사용하였을 때 replace 사용이 불가해진다
  • 이럴 때 ON DUPLICATE KEY를 사용해서 중복된 키일 때 키를 제외한 나머지 칼럼 값들을 변경할 수 있다

참고