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





