MySQL事务的介绍+事务的特性+事务的开启

事务介绍:mysql

简单的说,事务就是指逻辑上的一组SQL语句操做,组成这组操做的各个SQL语句,要么全成功要么全失败。
  例如:A给B转帐5元,流程是从A的帐户扣除5元,把5元打入B的帐户,B的帐户上收到5元。
  SQL语句为:update account set money=money-5 where name='A'; update account set money=money+5 where name='B';
  上述的SQL语句操做,在事务中要么都执行,要么都不执行; 这是事务的原子性(Acomicity)

事务的四大特性(ACID)
1.原子性(Atomicity)
  事务是一个不可分割的单位,事务中的全部SQL等操做要么都发生,要么都不发生。
2.一致性(Consistency)
  事务发生前和发生后,数据的完整性必须保持一致。
3.隔离性(Isolation)
  当并发访问数据库时,一个正在执行的事务在执行完毕前,对于其余的回话是不可见的,多个并发事务之间的数据是相互隔离的。有个备份参数--single-transaction(innodb使用)
4.持久性(Durability)
  一个事务一旦被提交,它对数据库中的数据改变时永久性的。若是出了错误,事务也不容许撤销,只能经过"补偿事务"。sql

开启事务:
数据库默认事务是自动提交的,发一条SQL执行一条。若是想多条SQL放在一个事务中执行,则须要使用事务进行处理。当开启一个事务,而且没有提交,mysql会自动回滚事务,或者使用rollback命令手动回滚事务。
start transaction 开启事务
rollback 回滚事务
commit 提交事务
mysql>set global autocommit=1; #开启自动提交
mysql>set global autocommit=0; #禁止自动提交  若是不执行commit,退出后,以前执行的操做就丢失了。数据库

相关文章
相关标签/搜索