我尝试在特定日期后为每个值添加 1 小时...
我有这样的表:
Colonne Type
id int(11)
date datetime
value double
kind varchar(190)
data_id int(11) NULL
我对 'date' 有 uniq 约束。 '种类' 。 '数据_id'
我试试:
update data set `date` = ADDTIME(`date`, '01:00:00') WHERE `date` > '2019-03-31 02:00:00';
但是我得到错误
Duplicate entry '2019-03-31 04:05:00-ManualDataValue-1' for key 'UNIQ_DATE_KIND_DATA_ID
我理解错误,值存在,但我需要“移动”所有数据...... 所以如果请求在一个 block 中执行并且在最后检查唯一约束,技术上没有错误......
如何执行此操作?
( PS: SELECT * FROM data
WHERE date
> '2019-03-31 02:00:00' 返回 1,198,778 条目,所以我不能手动执行此操作:/)
最佳答案
尝试:
update data set `date` = ADDTIME(`date`, '01:00:00') WHERE `date` > '2019-03-31 02:00:00' ORDER By date DESC
查看此 SO以获得更多解释。
关于mysql - 更新大量数据、日期(+1 小时)、唯一约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56582930/