1 概述
1. 什么是事务?
(1) 字面意思 : 一般是指要做的或所做的事情
(2) 在计算机中指: 一个程序执行单元('unit')
2. 事务的组成
(1) 事务开始(begin transaction) + 执行的操作 + 事务结束(end transaction)
(2) 可以是一条 sql 语句、一组 sql 语句 或 整个程序
2 概念
2.1 事务的特性(ACID)
1. 原子性(atomicity)
(1) 一个事务是一个 '不可分割' 的工作单元
(2) 事务中的操作要么都做,要么都不做
2. 一致性(consistency)
(1) 事务必须是使数据库从 '一个一致性状态' 变到 '另一个一致性状态'
(2) 一致性与原子性是密切相关的
3. 隔离性(isolation)
(1) 一个事务的执行不能被其他事务 '干扰'
(2) 各自为政,互不干扰 -- 锁机制
4. 持久性(durability)
(1) 一个事务一旦提交,它对数据库中数据的改变就应该是 '永久性' 的
(2) 数据已实际生成,写入磁盘,无法再回滚
如何保证原子性:(操作要么同时成功 -> commit,要么同时失败 -> rollback)
declare
begin -- 事务开始