无法运行特定记录的查询

时间:2018-03-27 07:05:06

标签: mysql sql mysql-workbench

我正在尝试在mysql workbench中运行查询。但它继续运行没有结束,最后抛出1205错误。最有趣的是我可以更新statusID=5的另一条记录的相同字段。

update `catalog`.`order_status` 
set `Status` = 'CONFIRMED' 
where `StatusID` = '4'

1 个答案:

答案 0 :(得分:0)

1205表示'锁定等待超时'。您正在尝试更新被锁定的记录。它可以在更新大量记录时锁定/然后达到300秒的超时错误(取决于您用来启动查询的应用程序的配置。)

修复1:找出实际问题:  运行(在MySQL中) show full processlist;  并确定正在运行的查询并锁定一个/一些行。  然后   kill query <process id>;

你也可以查看你的表的ENGINE - InnoDB允许记录锁定,MyISAM将锁定整个表(推荐:InnoDB)

修复2:如果以上操作无效则轻松获胜:重启mysql服务。这将释放所有锁。

选项3:使用'where'子句索引StatusID字段以便更快地搜索;但这不太可能成为问题。