【问题标题】:MySQL Delete do not rollbackMySQL 删除不回滚
【发布时间】:2021-02-21 22:19:18
【问题描述】:
Delete from test.employee where employee_id = 2002;

1 行受影响

rollback;

0 行受影响

不知道为什么我删除的数据值无法回滚,请帮忙,谢谢

【问题讨论】:

  • 要使用回滚,您必须先开始事务。然后你可以回滚或提交它
  • 谢谢@zolty13

标签: mysql sql-delete rollback


【解决方案1】:

a) test.employee 可能不是 innodb。请与show create table test.employee 联系。 b) 您启用了autocommit(这是默认设置)。

所以你可以确保它的innodbset autocommit=0start transaction,在这之后,你就会有交易。

【讨论】:

  • 谢谢@danblack
【解决方案2】:

如果您启用了autocommit,则每个 SQL 语句都会隐式启动并提交自己的事务。

当您运行 rollback 时为时已晚,它已经提交了。

如果你明确地start transaction,那么它不会自动提交。但是一旦您提交该事务,自动提交行为就会恢复。

【讨论】:

  • 谢谢@BillKarwin
猜你喜欢
  • 1970-01-01
  • 2015-08-05
  • 2020-12-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-07
相关资源
最近更新 更多