数据库中的事物的相关概念和操作

事物是数据库操作的重要概念,确保一组命令同时成功或失败。它允许在确认更改前检查操作的正确性,防止数据错误。例如,在转账场景中,事物确保资金从一个账户正确转移到另一个账户,如果出现错误,可以回滚事务以恢复原始状态。开启事物后,所有修改仅在提交后生效,否则可回滚取消。

一、事物的概念

事物是将一组数据库操作命令作为一个整体,这组命令要么同时成功,要么同时失败

在开启事物(begin)后,只要未进行事物的提交(commit)就可以通过事物的回滚(Rollback),将数据库中的数据内容恢复到开启事物之前的状态(即开启事物begin这条代码之前的数据是多少就仍为多少)

二、事物的作用

为什么要有事物这个功能呢?这是因为当数据库内容较多时,一旦修改错误一项或多项数据将很难再轻易修改恢复原来的数据,而事物则可以避免这种情况的发生。

通俗的讲,就是开启事物(begin)之后,只要未提交事物(commit),你所有在begin之后进行的数据库操作都只是虚拟的,但可以通过select语句查看你操作修改的数据是否正确符合要求。

若有误,则可以通过事物回滚操作(Rollback)初始化数据。

若无误后,再进行提交事物(commit),这时才是发生真正的修改,数据库中的数据才真正被改变

注意!!!当事物被提交后再进行事物回滚是无效的!!!

例子(转账操作)如下:

-- 转账操作

-- 开启事物
BEGIN;

-- 1.查询李四的余额

-- 2.李四金额-500
UPDATE account SET money=money-500 WHERE name='李四';

-- 出错了!

-- 3.张三金额+500
UPDATE account SET money=money+500 WHERE name='张三';


-- 提交事物
COMMIT;


-- 回滚事物
ROLLBACK;

 若李四给张三转账500元,在李四转走500元后且张三金额+500之间出现问题,则会使李四的账户金额少500,但张三的金额不变,这样总体下来500元便不翼而飞,显然不合理,于是若设置了开启事物,则可即使通过预查看表格结果是否正确,若不正确则ROLLBAC,再修改对应错误位置。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值