INSERT INTO mcrun (starttime,loop,chckport,mcid,UpdateTime) VALUES ('2022-02-15 09:20:11','9','R','217',NOW())
ON DUPLICATE KEY UPDATE xxx
mcrun 表只有mcid约束唯一的键
现在 INSERT INTO '217'这个语句,
有可能表里已经有 217 数据了,
想完成这个事情,的 UPDATE 做一些判断修改表的方法应该如何实现?
1 、如果指定的starttime,loop这两个在表的数据,和新插入有不同,单一个值有变化,也算条件成立,就更新最新的值,并把 UpdateTime 修改成 NOW()
2 、如果指定的starttime,loop这两个在表的数据,和新插入的一样,什么都不用动
3 、chckport的字段,不用理会
能不能单条语句完成?
如果一条语句实在办不到,自己能想到的是,解除约束健设置,直接新加入地写入,周期地删除重复 mcid ,只保留最新的 mcid 条目。。。,效率低,查询又要增加 order by UpdateTime LIMIT 1 ,很麻烦。。。
谢谢各位大佬能解答这个问题,谢谢!