【问题标题】:MySQL Update Join returns #1205 - Lock wait timeout exceeded; try restarting transactionMySQL 更新连接返回 #1205 - 超过锁定等待超时;尝试重启事务
【发布时间】:2021-08-07 02:35:32
【问题描述】:

我正在尝试执行以下查询,但它返回 #1205 - Lock wait timeout exceeded; try restarting transaction

查询

UPDATE cities c JOIN tmp_cities t ON (c.name = t.cityName) 
SET c.latitude = t.latitude
  , c.longitude = t.longitude 
WHERE c.latitude = 0 AND c.longitude = 0

此外,它不会影响任何行。换句话说,这个查询完全无法在我的 phpMyAdmin 中执行。有什么解决办法?

【问题讨论】:

  • #1205 - Lock wait timeout exceeded; try restarting transaction. 是在另一个进程当前正在从查询中的表中插入、更新或删除时引起的。这是针对活动数据库运行的吗?
  • 这里的活动数据库是什么意思?顺便说一句,我已经多次“杀死”当前正在运行的进程,但它仍然无法正常工作。

标签: mysql sql phpmyadmin


【解决方案1】:

您似乎在别处锁定citiestmp_cities 很长时间了。可能的情况:

  1. 还有另一个查询锁定了citiestmp_cities,但尚未完成。
  2. 您锁定了citiestmp_cities,但从未解锁

首先执行以下查询以查找哪些记录/表被锁定:

SELECT * from performance_schema.data_locks;

【讨论】:

    猜你喜欢
    • 2015-09-27
    • 2019-06-02
    • 2013-02-05
    • 2021-01-12
    • 2018-10-09
    • 2018-01-12
    • 2016-08-01
    • 1970-01-01
    • 2019-03-11
    相关资源
    最近更新 更多