当字段是唯一键的一部分时,如何为mysql表中的所有行添加datetime字段的时间?

时间:2014-11-11 14:55:40

标签: mysql

我正在尝试这样做:

UPDATE `myTable` SET `time_stamp` = ADDTIME(`time_stamp`, '02:30:00');

但是,'time_stamp'是我的唯一键的一部分,我收到一个错误: “重复输入'2014-09-22 18:30:00'关键'time_stamp'”

有更好的方法吗?我是否必须从最新的时间戳开始逐行?或者做一些棘手的事情,比如先减去一些大量的时间,然后再增加时间?

1 个答案:

答案 0 :(得分:1)

我理解你想要将2h30m0s添加到表中的每一行的问题,这就是为什么你得到重复键错误的原因。在这种情况下,只需按顺序降序,这样就不会将行更新为已存在的值。

UPDATE `myTable` 
SET `time_stamp` = ADDTIME(`time_stamp`, '02:30:00')
ORDER BY time_stamp DESC;

但是,如果要减去,则必须对ASC结尾进行排序。