sql语句,事务回滚rollback不生效

sql事务回滚(rollback)不生效。。

mysql版本5.7.24, macOS10.14,把autocommit设置为OFF也不生效,

把On The Road的num=5,修改为1,撤回事务,不生效,num还是1是为什么??

mysql> select name,num from book;
name num
On The Road 5
Effective Java 1
身体未曾忘记 1

3 rows in set (0.00 sec)

mysql> begin;
Query OK, 0 rows affected (0.00 sec)

mysql> start transaction;
Query OK, 0 rows affected (0.00 sec)

mysql> update book set num=1 where name='On The Road';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> select name,num from book;
name num
On The Road 1
Effective Java 1
身体未曾忘记 1

3 rows in set (0.00 sec)

mysql> rollback;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> select name,num from book;
name num
On The Road 1
Effective Java 1
身体未曾忘记 1

3 rows in set (0.00 sec)
把autocommit设置为OFF之后再次尝试也不行;

mysql> show variables like 'auto%';
Variable_name Value
auto_increment_increment 1
auto_increment_offset 1
autocommit OFF
automatic_sp_privileges ON

4 rows in set (0.00 sec)

你期待的结果是什么?实际看到的错误信息又是什么?

阅读 5.8k
3 个回答

你这个book表的引擎应该是MyISAM,MyISAM引擎表不支持事务,也就不支持回滚

建表的搜索引擎是Innodb,
最后解决:退出了mysql,重新连接之后 rollback生效了,(有点莫名其妙)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题