用MySQL實現多行數據Update操作以時間戳作為主鍵的表,提示主鍵沖突
sql語句格式為:
1 update 表名 set 列名='值1' where 列名='值2'
數據庫里有很多行滿足where中的條件,設想中update之后數據庫應該一次對所有滿足條件的行進行值替換
但最后結果是只更新了第一行,后面的行更新時報時間戳主鍵沖突,不能成功更新
原因:
我在建表時設置時間戳在數據行更新時自動更新為更新時間(即體現的是最后修改時間)
數據庫更新多行數據的速度是非常快的,時間戳的精確度不夠高,導致連續更新第二條數據時,更新的時間戳與上一條被更新數據中的時間戳(也剛更新過時間戳)相同,即報主鍵沖突
解決方法:
在表設計中取消時間戳的自動更新

如果不需要自動更新的,勾掉即可成功一次更新多行
第一次遇到這種問題,跪了 _(:D 」∠❀)_
