Lock wait timeout exceeded; try restarting transaction 是 MySQL 数据库中一个常见的错误信息,它表示当前事务等待加锁的操作超时了,因为锁被其他事务占用,导致无法获取锁。这里有多种情况会导致表锁,例如使用锁表语句:LOCK TABLES...
Lock wait timeout exceeded; try restarting transaction 是 MySQL 数据库中一个常见的错误信息,它表示当前事务等待加锁的操作超时了,因为锁被其他事务占用,导致无法获取锁。这里有多种情况会导致表锁,例如使用锁表语句:LOCK TABLES stat_num WRITE,
或者使用了悲观锁但不提交事务,那么这里就会一直锁住这些行,那么你对表进行操作的时候就会告诉你当前事务还没有结束。
BEGIN;
SELECT * FROM user WHERE age>2 FOR UPDATE;
那么怎么解决这个问题呢,简单粗暴的办法,把这张表的锁释放表,不需要网上其他教程那么多花里胡哨的查锁,释放某个锁,这对于不同版本的数据库是不通用的。
UNLOCK TABLES;
一行SQL解决所有的不痛快……
沃梦达教程
本文标题为:Lock wait timeout exceeded; try restarting transaction
基础教程推荐
猜你喜欢
- 如何将参数传递给使用 sqlcmd 调用的 SQL Server 脚本? 2021-01-01
- Sql*plus 总是返回退出代码 0? 2021-01-01
- 替换存储在 SQL Server 数据库列中的 XML 中的节点名 2021-01-01
- SSIS:在数据流中使用 System::TaskName 2021-01-01
- 如何在没有密码提示的情况下执行 mysqldump? 2021-01-01
- 为 SQL Server 设置 Maven 依赖项 2021-01-01
- 与不使用派生表的查询相比,使用派生表的查询 2021-01-01
- 哪个是 Rails 应用程序的最佳数据库? 2022-01-01
- my.cnf 文件在 macOS 上的位置 2021-01-01
- (+) 在 Oracle SQL 中有什么作用? 2021-01-01