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

mysql中的事务

一、事务的作用

  事务是指一系列将要发生的连续的操作。

  事务安全是为了保证一系列操作的结果保持同步,保证数据的完整性。

  开启事务后,操作的结果会先保存到事务日志中,等操作完成提交事务后,才会修改表中的数据。

  注意:只有innodb存储引擎和bdb存储引擎才支持事务安全。

二、事务使用

start transaction;    -- 开启事务

-- SQL语句1...

savepoint sp1;        -- 设置回滚点

-- SQL语句2...

-- 如果操作失败 可以用rollback退回到回滚点

rollback to sp1;

-- SQL语句3...

-- 操作完成后,用commit提交事务
commit;

三、自动事务提交

  事务是否自动提交由系统变量autocommit来控制,1为开启,0为关闭。默认是开启状态。

-- 设置自动事务提交
set autocommit := 0;  -- mysql中 = 一般用于比较,  := 才是赋值

四、事务的特性--ACID
  A: atomic, 原子性, 整个事务的操作是一个整体,不可分割,要么全部成功,要么全部失败。

  C: consistency, 一致性,事务操作前后,数据表中的数据没有变化。

  I: isolation, 隔离性, 不同的事务操作是相互隔离,不受影响的。

  D: durability, 持久性, 数据一旦提交, 就不会再改变。

  锁机制:innodb默认是行锁, 但当事务操作的过程中,没有使用到索引,那么就会自动升级为表锁,全表检索数据。

mysql中的事务