当字段是唯一键的一部分时,如何为mysql表中的所有行添加time to datetime字段?
我正在尝试这样做:当字段是唯一键的一部分时,如何为mysql表中的所有行添加time to datetime字段?,mysql,Mysql,我正在尝试这样做: UPDATE `myTable` SET `time_stamp` = ADDTIME(`time_stamp`, '02:30:00'); 但是,“时间戳”是我的唯一密钥的一部分,我得到一个错误: “钥匙“时间戳”重复输入“2014-09-22 18:30:00” 有更好的方法吗?我必须从最新的时间戳开始一行一行地走吗?或者做一些棘手的事情,比如先用大量的时间减去时间,然后再加上时间?我理解这个问题,比如你想在表中的每一行加上2个30毫秒,这就是为什么会出现重复键错误的原
UPDATE `myTable` SET `time_stamp` = ADDTIME(`time_stamp`, '02:30:00');
但是,“时间戳”是我的唯一密钥的一部分,我得到一个错误:
“钥匙“时间戳”重复输入“2014-09-22 18:30:00”
有更好的方法吗?我必须从最新的时间戳开始一行一行地走吗?或者做一些棘手的事情,比如先用大量的时间减去时间,然后再加上时间?我理解这个问题,比如你想在表中的每一行加上2个30毫秒,这就是为什么会出现重复键错误的原因。在这种情况下,只需按降序排列,这样就不会将行更新为已经存在的值
UPDATE `myTable`
SET `time_stamp` = ADDTIME(`time_stamp`, '02:30:00')
ORDER BY time_stamp DESC;
但是,如果要进行减法,则必须对ASC进行排序。添加的时间并不总是2:30。这只是一个例子。这实际上是脚本的一部分,所以值作为参数传入。是的,两次传入处理似乎很好。首先移动时间戳以避免冲突,然后设置实际时间戳更改表的概念:)