[MySQL] ON DUPLICATE KEY

로그zip·2024년 2월 5일

특정 조건에 따라 특정 컬럼을 UPDATE 처리하며 이미 해당 값으로 변경되었거나 중복될 경우
건너뛰고자 할 경우 다음의 방법으로 처리한다.

  1. 존재확인 후 UPDATE
UPDATE MY_TABLE 
SET MY_COLUMN = 'NEW_VALUE'
WHERE MY_CONDITION = 'TRUE'
AND NOT EXISTS # 동일 조건이 없을 때 UPDATE 시행
	(SELECT 1 FROM MY_TABLE WHERE MY_CONDITION = 'TRUE') #조건충족 시 1(존재)
  1. INSERT 시도 후 UPDATE
INSERT INTO MY_TABLE (ID, MY_COLUMN) VALUES (ID, MY_COLUMN)
ON DUPLICATE KEY UPDATE MY_COLUMN = VALUES(MY_COLUMN) 
# INSERT 중 KEY 중복이 발생하면 UPDATE 를 통해 값 변경
profile
로그하우스

0개의 댓글