事务,transaction,具有原子性,一致性,隔离性,持久性,ACID属性,将一系列的数据操作捆绑成一个整体进行统一管理。
事务启动过程:
BEGIN/START TRANSACTION
XXX
COMMIT/ROLLBACK
事务不可重入,提示错误cannot start a transaction within a transaction
默认设置下, 每条SQL就是一个事务,自动提交模式,autocommit ON;
事务的隔离级别说明:
- 读未提交(READ UNCOMMITTED):可以读到未提交的内容
- 读提交(READ COMMITTED):只能读到已提交的内容
- 可重复读(REPEATABLE READ):每次读到相同的内容
- 串行化(SERIALIZABLE):避免脏读,不可重复读和幻读
- 脏读:事务1更新,未commit,事务2读到事务1的更新
- 不可重复读:事务1更新,读1,事务2更新,commit,读2,读1和读2的结果不同
- 幻读:事务1插入,删除,读1,事务2插入,删除,commit,读2,读1和读2 的结果不同