mysql事物处理的四大特征和简单用法

/*
	什么是事物,事物就是要么同时成功,要么同时失败
		例如:张三给了李四一百块钱,张三账户的钱会少一百,李四的钱会多一百
			其实可以看成两条sql语句,一句是张三账户减一百 ,另一句是李四账户加一百
			说不定有时候,第一句执行成功了,第二句没成功,然后就会出现金额不匹配的问题。
			所以有了事物;
	事物的四大特征:ACID //首字母
			1:(A)原子性:原子(最小单位,不可分割的原子单位),要么成功,要么失败
			2:(C)一致性:事物执行后,数据库状态和其他业务规则保持一致,
				例如:张三和李四的账户,无论转账成功与否,两个账户中的总金额应该是不变的
			3:(I)隔离性:是指并发操作中,不同事物之间应该隔离开来,使每个并发中的事物不会相互干扰
				px;说的我自己也不是很能看懂,我也不怎么明白这句话的意思
			4:(D)持久性:一旦提交事物,它对系统的影响是持久性的
				例如:一旦提交,会从内存中写到数据库中,可以随时查到
*/
/*
	步骤:1:关闭mysql的自动提交
		2:开始事物语句
		3:mysql语句
		4:结束事物语句
*/



--  首先需要关闭 自动提交

SHOW VARIABLES	LIKE 'auto%'
SET autocommit=off;

--  transaction的意思是事物
--  合起来是开始一个事物
START TRANSACTION;

--   中间写sql语句(我写的是转账,一个人减钱3,一个人加钱)
UPDATE  table3
SET money=money-100
WHERE NAME='starry';

--  可以加回滚点,也可以不加
--   savepoint的意思是保存点的意思。
-- 加上之后可以在程序执行中有问题的时候,数据在这个位置以前的都会执行
SAVEPOINT a;

UPDATE  table3
SET money=money+100
WHERE NAME='alex';

-- 提交事务(成功)
COMMIT;
-- 提交事物(失败)(我这里写的是失败后返回a保存点,也可以不写a)
ROLLBACK TO a;
						starry.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值