我正在尝试这样做:
UPDATE `myTable` SET `time_stamp` = ADDTIME(`time_stamp`, '02:30:00');
但是,'time_stamp'是我的唯一键的一部分,我收到一个错误: “重复输入'2014-09-22 18:30:00'关键'time_stamp'”
有更好的方法吗?我是否必须从最新的时间戳开始逐行?或者做一些棘手的事情,比如先减去一些大量的时间,然后再增加时间?
答案 0 :(得分:1)
我理解你想要将2h30m0s添加到表中的每一行的问题,这就是为什么你得到重复键错误的原因。在这种情况下,只需按顺序降序,这样就不会将行更新为已存在的值。
UPDATE `myTable`
SET `time_stamp` = ADDTIME(`time_stamp`, '02:30:00')
ORDER BY time_stamp DESC;
但是,如果要减去,则必须对ASC
结尾进行排序。