중복 키에 대한 삽입...에 대한 조건부 업데이트
중복 키 조건을 기반으로 레코드를 삽입하거나 업데이트하는 것은 데이터베이스 프로그래밍의 일반적인 시나리오입니다. . 그러나 경우에 따라 업데이트 조건을 추가로 제한하여 추가 기준에 따라야 할 수도 있습니다. 안타깝게도 INSERT ... ON DUPLICATE KEY UPDATE 구문은 기본적으로 조건부 업데이트에 대한 WHERE 절을 지원하지 않습니다.
제한 극복
이 제한 사항을 해결하려면 UPDATE 절 내에서 IF() 함수를 활용할 수 있습니다. IF() 함수를 사용하면 주어진 논리 표현식을 기반으로 대체 값을 지정할 수 있습니다.
구현 예
다음 INSERT ... ON DUPLICATE KEY UPDATE를 고려하세요. 쿼리:
INSERT INTO daily_events (created_on, last_event_id, last_event_created_at) VALUES ('2010-01-19', 23, '2010-01-19 10:23:11') ON DUPLICATE KEY UPDATE last_event_id = IF(last_event_created_at < VALUES(last_event_created_at), VALUES(last_event_id), last_event_id);
이 쿼리에서 UPDATE 절에는 기존 last_event_created_at 값이 값이 삽입되는 중입니다. 기존 값이 오래된 경우 업데이트가 수행되어 last_event_id가 새 값으로 대체됩니다. 그렇지 않으면 기존 last_event_id가 유지됩니다.
추가 고려 사항
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3