Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当字段是唯一键的一部分时,如何为mysql表中的所有行添加time to datetime字段?_Mysql - Fatal编程技术网

当字段是唯一键的一部分时,如何为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。这只是一个例子。这实际上是脚本的一部分,所以值作为参数传入。是的,两次传入处理似乎很好。首先移动时间戳以避免冲突,然后设置实际时间戳更改表的概念:)