【发布时间】:2020-03-27 06:33:51
【问题描述】:
我有一个简单的表格,里面有一堆行。没有外键。多个列上都有一个唯一键。
下面是插入语句的示例:
INSERT INTO das_args (a,b,c,d) VALUES (1,2,3,4) ON DUPLICATE KEY UPDATE VALUES(1,2,3,4)
唯一键是 (a,b,c)。
错误是:
(1213, 'Deadlock found when trying to get lock; try restarting transaction')
我读过How to avoid mysql 'Deadlock found when trying to get lock; try restarting transaction',这是对不同用例触发相同错误消息的精彩讨论。
自动提交为真。这是唯一的说法。没有 BEGIN 或 COMMIT。
我看不出有什么方法可以重构它。只有两个客户端似乎同时更新相同的唯一密钥(这不应该发生,但确实发生了)。我的代码只是重新运行该语句并成功,但我想删除死锁错误。
【问题讨论】:
标签: mysql mariadb database-deadlocks