mysql - 更新大量数据、日期(+1 小时)、唯一约束

标签 mysql date

我尝试在特定日期后为每个值添加 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/

相关文章:

jquery - 安排根据特定时区更改 FC-today 亮点

ios - 从字符串格式化日期 - swift3

php - 如何同时使用mysql更新查询和mysql插入查询?

mysql - MYSQL中的日期格式

php - 从 print_r 输出中删除数组 ( [0] =>

php - 尝试使用 foreach 获取一行中的字段

excel - 在 Excel 中格式化公式的 VBA 数字

javascript - jquery,处理日期

MySQL 锁和使用唯一索引锁定行的语句

mysql - 如果一列值 >= 另一列值的 1/3,则将文本输入到另一列中