为什么有一个表无法更新数据?

合取 发布于 2016/08/24 17:22
阅读 223
收藏 0

为什么数据库中有个表无法修改? 无论只使用sql 进行update 还是在数据库工具中直接在表数据中修改,都会发生死锁.

Cause: java.sql.SQLException: Lock wait timeout exceeded; 
try restarting transaction
而其他表都是正常的. 做查询也是正常,但是无法做更新操作.


SHOW OPEN TABLES WHERE In_use > 0;
show processlist;
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;
这些语句检查都查不到内容. 这是什么原因呢?该如何解决这个问题?










加载中
0
合取
合取
知道问题了.
在information_schema.INNODB_TRX表中可以看到有被锁的进程, 只要kill掉trx_mysql_thread_id这个字段中的进程id就可以了.
0
魔力猫
魔力猫
我觉得你更要搞清楚为什么会锁,简单杀进程看起来简单了,但是治标不治本。
合取
合取
应该是语句写错了哦,导致一条语句里面更新同一个字段多次
返回顶部
顶部