MySQL Update操作提示主键冲突(时间戳作为主键)


用MySQL实现多行数据Update操作以时间戳作为主键的表,提示主键冲突

sql语句格式为:

1 update 表名 set 列名='值1' where 列名='值2'

数据库里有很多行满足where中的条件,设想中update之后数据库应该一次对所有满足条件的行进行值替换

但最后结果是只更新了第一行,后面的行更新时报时间戳主键冲突,不能成功更新

原因:

我在建表时设置时间戳在数据行更新时自动更新为更新时间(即体现的是最后修改时间)

数据库更新多行数据的速度是非常快的,时间戳的精确度不够高,导致连续更新第二条数据时,更新的时间戳与上一条被更新数据中的时间戳(也刚更新过时间戳)相同,即报主键冲突

解决方法:

在表设计中取消时间戳的自动更新

 

 

如果不需要自动更新的,勾掉即可成功一次更新多行

第一次遇到这种问题,跪了  _(:D 」∠❀)_


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM