今天数据遇到mysql只有一行不能update。
怀疑表被锁了,使用
show open tables where in_use>0;
没有发现锁的痕迹。
不对,应该是update执行的时候,查看是否被锁住。重新执行update,当update还在执行的,查看是否被锁。
执行update操作
另外的窗口查看是否有锁的现象
select * from information_schema.INNODB_LOCKS;
的确被锁住了。
select * from information_schema.innodb_trx where trx_id=10788130
就能查看到事务的详细信息。
怎么解决这个问题呢?
使用mysql -uxxx -p 命令登录到数据库,进行回滚和提交就可以。
commit;
或者
rollback;(未真正执行)
具体是怎么回事呢?因为MySQL 5.5 InnoDB 锁等待,具体学习文章:
https://dbarobin.com/2015/01/27/innodb-lock-wait-under-mysql-5.5/