gpt4 book ai didi

mysql - innodb 超时回滚

转载 作者:搜寻专家 更新时间:2023-10-30 20:28:54 24 4
gpt4 key购买 nike

我有一个运行存储过程的 mysql 5.1 数据库

 
START TRANSACTION
Insert some rows to table 1
Insert some rows to table 2
COMMIT
调用这个存储过程经常失败

SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction

根据 this page here ,如果 mysql 服务器不是以 innodb_rollback_on_timeout 启动的,那么只有最后一条语句被回滚,但是 START TRANSACTION 本身将设置 autocommit = 0。这是否意味着我们的 mysql 服务器需要使用此参数启动,以便它不会使数据库处于不一致状态,即某些行插入到表 1 而不是插入到表 2 中?

最佳答案

是的,或者declare a handlerFOR '1205'” 在您的程序中,您可以(例如)回滚事务并中断进程。

关于mysql - innodb 超时回滚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16716616/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com