事务处理

Notes:SQL文件

事务处理(transaction processing)

为什么需要事务处理?

事务处理是一种机制,用来管理必须成批执行的MySQL操作,以保证数据库不包含不完整的操作结果。

术语
  • 事务(transaction)指一组SQL语句。
  • 回退(rollback)指撤销指定的SQL语句的过程。
  • 提交(commit)指将未存储的SQL语句结果写入数据库。
  • 保留点(savepoint)指事物处理中设置的临时占位符(placeholder),你可以对它发布回退(与回退整个事物处理不同)。

控制事务

SELECT * FROM ordertotals;
-- 启动事务管理
START TRANSACTION;
DELETE FROM ordertotals;
SELECT * FROM ordertotals;
-- 只能在一个事务处理内使用(在执行一条START TRANSACTION命令之后)
ROLLBACK;
SELECT * FROM ordertotals;

COMMIT

  • 在事务处理中,提交不会隐含地进行。为了明确的提交,使用COMMIT语句。
  • 当COMMIT或ROLLBACK语句执行后,事务会自动关闭(将来的更改会隐含提交)。
START TRANSACTION;
DELETE FROM orderitems WHERE order_num=20010;
DELETE FROM orders WHERE order_num=20010;
COMMIT;

使用保留点

  • 为了支持回退部分事务处理,必须能在事务处理模块中合适的位置放置占位符,如果需要回退,可以回退到某个占位符。这样需要回退,可以回退到某个占位符。
  • 保留点越多越好,保留点越多,你就越能按自己的意愿灵活地进行回退。
  • 保留点在事务处理完成(执行一条ROLLBACK或COMMIT)后自动释放。也可以使用RELEASE SAVEPOINT明确地释放保留点。
SAVEPOINT delete1;

更改默认的提交行为

-- autocommit是针对每个连接而不是服务器的。
SET autocommit = 0;

更改外键约束

-- 1:检查外键约束  0:不检查外键约束
SET foreign_key_checks=1;

查看数据库隔离等级

SHOW variables LIKE '%isolation%';
SELECT @@global.tx_isolation, @@tx_isolation;
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值