6.1  什么是事务

原子性:要么都成功,要么都失败

---------------------

1、SQL执行    A给B转账          A 800    —>200     B  200

2、SQL执行    B收到A的钱      A  600     —>B 400

---------------------

将一组SQL放在一个批次中去执行~

(六)事务_持久性

 

 

事务原则:

ACID 原则: 原子性,一致性,隔离性,持久性(脏读,幻读)

原子性:要么都成功,要么都失败

一致性:事务前后的数据完整性要保持一致,无论怎么转,最后的值一定是1000

持久性:事务一旦提交就不可逆,被持续化到数据库中;事务没有提交就恢复到原状,事务已经提交就持续化到数据库

隔离性:事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离;排除其他事务对本次事务的影响

(六)事务_不可重复读_02

 

 

隔离所导致的一些问题:

脏读:指一个事务读取了另外一个事务未提交的数据

不可重复读:在一个事务内读取表中的某一行数据,多次读取结果不同。(这个不一定是错误,只是某些场合不对)

幻读(虚读):在一个事务内读取到了别人的事务插入的数据,导致前后读取不一致(一般是行影响,多了一行)

 

执行事务:

MySQL是默认开启事务自动提交的

SET autocommit = 0 /* 关闭 */

SET autocommit = 1 /* 开启 */

(六)事务_数据库_03

 

 (六)事务_sql_04

 

 (六)事务_数据库_05

 

DECIMAL(9,2) 

9位有效数字,小数点后两位

(六)事务_sql_06