初识MySQL(9)管理事务处理

本文详细介绍了数据库事务处理的概念,包括事务、回退、提交和保留点等关键术语。通过具体示例展示了如何使用START TRANSACTION, ROLLBACK和COMMIT语句控制SQL语句的执行流程,确保数据的一致性和安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.几个相关概念

事务:指一组SQL语句。
回退:指撤销指定SQL语句的过程。
提交:指将未存储的SQL语句结果写入数据库表中。
保留点:指事务处理中发表的临时占位符,可以对它发布回退。

2.控制事务处理

管理事务处理的关键在于将SQL语句分块,并明确规定数据何时应该回退,何时不应该回退。

使用ROOLBACK:

SELECT * FROM ordertotals;  这时候表不为空
START TRANSACTION;
DELETE FROM ordertotals;
SELECT * FROM ordertotals;  这时候表为空
ROLLBACK;
SELECT * FROM ordertotals;   这时候表不为空

这个例子首先查询了ordertotals表的所有内容。然后通过START TRANSACTION表示一个事务的开始:删除ordertotals的所有行,再查询表的所有行,验证表为空。这时候再用一条ROLLBACK语句实现回退,最后一条语句的结果显示表不为空

ROLLBACK语句用来管理INSERT,UPDATE和DELETE语句,不能用于SELECT,CREATE与DROP。

使用COMMIT:
一般在我们对数据库表进行处理的过程中都是“隐含提交”,即不用明确地出现COMMIT语句,就会将我们的操作结果直接写入数据库表中。但是在事务处理这一块,我们必须使用COMMIT来实现对结果的提交:

START TRANSACTION;
DELETE FROM orderitems WHERE order_num = 20010;
DELETE FROM orders WHERE order_num = 20010;
COMMIT;

这个例子从系统中的两个表删除编号为20010的数据,因为涉及到两个表的操作,要保证一致性,我们使用了事务处理的方式,即只有在两个表都删除成功的情况下才执行COMMIT操作,修改数据库表,而当只有一条语句成功或者都不成功的情况下不执行操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值