我试图执行以下查询,但它返回#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中完全无法执行。解决方案是什么?
您似乎在其他地方锁定了cities
或tmp_cities
很长时间。可能的情况:
- 还有另一个查询锁定了
cities
或tmp_cities
,但尚未完成 - 您锁定了
cities
或tmp_cities
,但从未解锁
通过执行以下查询来查找哪些记录/表被锁定:
SELECT * from performance_schema.data_locks;