MySQL中的事务
MySQL中的事务性:
MySQL的InnoDB引擎是支持事务性的,事务是由多条SQL语句组成,是一个连续的一组数据库操作。只有该组内的每一个操作都成功时,整个事务才执行成功。(例如银行转账操作,只有转账成功,原账户才会扣除相应金额。)
事务的四大特性:ACID
A:(原子性)
每个事务是一个不可分割的单位,该事务中所有的操作都执行成功后,整个事务才算执行成功。
C:(一致性)
事务将数据库从一种状态转变为另一种状态,事务开始之前和结束之后数据库完整性约束不变。
I:(隔离性)
多个事务同时对数据库进行操作时,各个事务要进行隔离,保证事务之间不会相互干扰。
D:(持久性)
事务执行完成后一旦被提交,其结果是永久的,已经改变数据库,不会再回滚。
MySQL中事务性操作语句:
>begin;(开始一个事务)
>insert,delete,select,update;(增删改查等语句)
>rollback;(事务回滚,回到上次commit处)
>commit;(事务确认,整个事务结束)
MySQL事务处理开启方式:
1、通过begin,rollback,commit语句执行事务操作
2、通过set来改变mysql自动提交模式 :
MySQL默认是自动提交执行结果的,即提交一个query时自动执行。可以通过set autocommit参数来修改。
set autocommit = 0 禁止自动提交
set autocommit = 1 开始自动提交
当autocommit = 0 时,所有的sql都将被作为事务来处理,直到commit或者rollback来结束事务。