mysql 事务 回滚

事务的四个特性ACID,原子性,一致性,隔离性,持久性,

开始一个事务:

->begin;或者start transaction;

->sql语句

->savepoint identifier,(创建一个保存点)

->commit;或者rollback;

Question:如果rollback没有生效,

1.请查看你的存储引擎  show variables like '%storage_engine%';

2.查看你的表的引擎show create table 表名;

有些引擎并不支持事务,

3.查看你的mysql提供了哪些引擎:show variables like '%engine%';'

最好选择InnoDB吧

ps:我遇到一次rollback就是不起做哟,最后退出mysql终端命令行,然后重新连接之后又尝试了一次rollback就生效了(emmm..)

所以以后可以重启mysql或者重新连接mysql试试。

--------------------------------------------------------

set autocommit=0和start transaction的区别(转载地址

autocommit为0,(不知道autocommit=OFF应该是同一个意思吧)是指事务非自动提交,自此句执行以后,每个SQL语句或者语句块所在的事务都需要显示"commit"才能提交事务。

1.不管autocommit为0或者1,start transaction之后,只有当commit之后数据才会生效,rollback之后会回滚。

2.当autocommit为0时,不管有没有start transaction,只有当commit之后数据才会生效,rollback之后会回滚。

3.当autocommit=1,并且没有start transaction,调用rollback是没有用的。

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值