本文共 907 字,大约阅读时间需要 3 分钟。
/* 什么是事物,事物就是要么同时成功,要么同时失败 例如:张三给了李四一百块钱,张三账户的钱会少一百,李四的钱会多一百 其实可以看成两条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 table3SET money=money-100WHERE NAME='starry';-- 可以加回滚点,也可以不加-- savepoint的意思是保存点的意思。-- 加上之后可以在程序执行中有问题的时候,数据在这个位置以前的都会执行SAVEPOINT a;UPDATE table3SET money=money+100WHERE NAME='alex';-- 提交事务(成功)COMMIT;-- 提交事物(失败)(我这里写的是失败后返回a保存点,也可以不写a)ROLLBACK TO a; starry.
转载地址:http://rsxvi.baihongyu.com/