首页 > 代码库 > MySQL中的事务

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来结束事务。

 

MySQL中的事务