跟着小豆学SQL:5 [基础]事务
# 查看是否开启自动提交
select @@autocommit;
# 1为开启,你的每次操作会被自动提交
set @@autocommit = 0; # (全局,但只对当前会话有效
# 设置为0后操作需要手动commit
update product set price = 99 where product_name = 'A';
# 执行上面的代码再看看product,是不是价格还没有变?
commit ; # 执行它再看看
# 是不是变更了呢?这就是自动提交
update product set price = 1 where product_name = 'A';
# 执行上面的代码再执行下面,看看有没有变更
rollback ;
# 是不是没有变更?这是回滚,当你不想提交本次所作的所有操作,使用rollback,所有操作都不会被提交
# 不过我们的事务通常会手动开启,参考下面的代码
begin ; # 设置事务开启 (范围
update product set price = 1 where product_name = 'A';
commit ; # 提交 一个范围内的sql代码会被提交 事务结束
begin ; # 设置事务开启 (范围
update product set price = 1 where product_name = 'A';
rollback ; # 回滚 一个范围内的sql代码不会被提交 事务结束
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。