一.事务
-
概念理解
事务是用户为完成一次任务所进行的一系列操作或者是为完成某种任务在机器上单独执行的一个程序。这些操作要么全做,要么全不做,是一个不可分割的单元。
eg:
解释:A中取出后,B就会存入。操作要么就都完成,要么都不做。
-
定义事务的语句
事务是一种机制,确保多个SQL语句被当做单个工作单元来处理。
事务的开始和结束可以由用户显示控制。(例如银行取钱,由用户显示控制钱的取出和存入)如果用户没有显示的定义事物,则由DBMS按缺省规定自动划分事物。在SQL语言中,定义事物的语句有三条:
BEGIN/start transaction
COMMIT
ROLLBACK
事务通常都是以BEGIN开始,以COMMIT或ROLLBACK结束。
COMMIT表示提交,即提交事务的所有操作。具体地说就是将事务中所有对数据库的更新写回磁盘上的物理数据库中,事务正常结束。一旦提交就不能撤销。
ROLLBACK表示回滚,即在事务运行的过程中发生了某种故障,事务不能继续执行,系统将事务对数据库的所有已完成的操作全部撤销,回滚到事务开始时的状态。
回滚到某一时刻:
定义存储点
savepoint point_name
rollback to savepoint point_name
eg:
存储点之前的都执行,之后的都不执行。
commit之后回滚就没意义了
-
事务的特性(ACID)
(1)原子性
事务中的各种操作要么都做,要么都不做。当事务非正常终止时,其中间结果将被取消。事务的原子性保证数据库的状态总是从一个一致性的状态变化到另一个一致性的状态,而不会出现不一致的中间状态。
(2)一致性
又称可串行性,并发执