sql事务

在进行sql语句执行时候,有些行为需要进行牵涉到多个表数据的操作,如果在执行的时候仅仅执行到了一条操作语句而没有执行完整,就需要进行全部撤销

update t_accounts set money = money-100 where id = 1;
update t_accounts set money = money+100 where id = 2;

例如上面两句(进行转账),都必须全部执行才能属于可以通过的行为,这种把多条语句作为一个整体进行操作的功能,被称为数据库事务

将多条事务当作同一事务进行统一执行,就需要使用 Begin(开始一个事务)

开启一个新的事务,然后接事务中需要进行操作的代码,以显式事务的方式进行

Begin;
update t_accounts set money = money-100 where id = 1;
update t_accounts set money = money+100 where id = 2;

当结束对于显式事务的操作后,在最后加上commit进行提交

BEGIN;
UPDATE accounts SET money = money - 100 WHERE id = 1;
UPDATE accounts SET money = money + 100 WHERE id = 2;
COMMIT;

在整个事务语句中,如果commit语句执行失败,那么整个事务将会直接失效


隔离级别:

脏读(Dirty Read)不可重复读(No Repeatable Read)幻读(Phantom Read)
Read uncommitted
Read committed×
Repeatable read××
Serializable×××
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值