事务的生命周期与事务模式(autocommit)

事务生命周期图:


声明事务的边界:

•事务的开始边界。

•事务的正常结束边界(COMMIT):提交事务,永久保存被事务更新后的数据库状态。

•事务的异常结束边界(ROLLBACK):撤销事务,使数据库退回到执行事务前的初始状态。

在mysql.exe中声明事务:

•每启动一个mysql.exe程序,就会得到一个单独的数据库连接。每个数据库连接都有个全局变量@@autocommit,表示当前的事务模式,它有两个可选值:

–0:表示手工提交模式。

–1:默认值,表示自动提交模式。

•如果要察看当前的事务模式,可使用如下SQL命令:

–mysql> select @@autocommit

•如果要把当前的事务模式改为手工提交模式,可使用如下SQL命令:

–mysql> set autocommit=0;


——在自动提交模式下提交事务:

•在自动提交模式下,每个SQL语句都是一个独立的事务。如果在一个mysql.exe程序中执行SQL语句:

–mysql>insert into ACCOUNTS values(1,'Tom',1000);

•MySQL会自动提交这个事务,这意味着向ACCOUNTS表中新插入的记录会永久保存在数据库中。此时在另一个mysql.exe程序中执行SQL语句:

–mysql>select * from ACCOUNTS;

•这条select语句会查询到ID为1的ACCOUNTS记录。这表明在第一个mysql.exe程序中插入的ACCOUNTS记录被永久保存,这体现了事务的ACID特性中的持久性。


——在手工模式下提交事务:

•在手工提交模式下,必须显式指定事务开始边界和结束边界:

–事务的开始边界:begin

–提交事务:commit

–撤销事务:rollback

例:

–mysql>begin;
–mysql>select * from ACCOUNTS;
–mysql>commit;

在手工提交模式下,一个事务结束的标志为提交事务或者撤销事务。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值