这是我的插入脚本:
INSERT INTO CONTENT (content_id, version, description)
VALUES ('123', '1', 'This is an example')
ON DUPLICATE KEY UPDATE version=VALUES(version),description=VALUES(description)
content_id
是pk。
如果有重复的密钥,我想检查version
下的值。如果它大于我想要插入的值,则忽略新插入。否则,在db中更新content_id
的那个。我试图首先在堆栈溢出上搜索我的问题并找到:MySQL update if value is greater than that current value。但它并没有解决我的问题。
有什么建议吗?
答案 0 :(得分:1)
INSERT INTO CONTENT (content_id, version, description)
VALUES ('123', '1', 'This is an example')
ON DUPLICATE KEY
UPDATE version=
CASE WHEN VALUES(version) > version THEN VALUES(version) ELSE version END,
description=
CASE WHEN VALUES(version) > version THEN VALUES(description) ELSE description END