안녕하세요.
MySQL의 insert on duplicate key update 를 사용하는 도중에
문의사항이 있어 메일 드립니다.
해당 기능은 key 값이 중복되는 건에 대해서 없으면 insert 있으면 update 하는데요.
혹시 update시에 값이 기존값과 변경된 경우에만 update를 할수 있을까요?
구체적으로는 필드가 5개라면, 5개중 하나라도 기존 값과 변경된 경우에만 update 할수 있는지 문의드립니다.
지금은 무조건 update 치는 것으로 되어 있습니다.
이래서 modify_date가 값이 변경되지도 않은 row에 대해서도 변경이 됩니다.
물론 select를 먼저하여 구분할수도 있겠지만, 한번에 쿼리로 가능하면 이 쿼리를 사용하고 싶어서요.
감사합니다.
INSERT INTO table
(
fielda, fieldb, fieldc, fieldd, fielde, insert_date
)
VALUES
(
#{fielda}, #{fieldb}, #{fieldc}, #{fieldd}, #{fielde}, now()
)
ON DUPLICATE KEY
UPDATE
fielda = #{fielda},
fieldb = #{fieldb},
fieldc = #{fieldc},
fieldd= #{fieldd},
fielde = #{fielde},
modify_date = now()
fielda~e 값이 기존값과 변경된 경우에만 update를 수행하고 싶음.