数据库学习之六--事务(Transaction)
一、定义
事务是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。
规则:
1. 用形如begin transaction和end transaction语句来界定
2. 由事务开始和结束之间的所有操作组成;
3. 由用户程序的执行所引起;
4. 事务是恢复和并发控制的基本单位;
事务的属性:
1. 原子性(Atomic):一个事务是一个不可分割工作单位;要么执行,要么完全不执行;例如:支持回滚操作;
2. 一致性(Consistency):事务从一个一致的状态转换到另一个一致状态;读写数据的一致性;例如:事务的不同隔离级别导致了不同程度的一致性;
3. 隔离性(Isolation):事务之间是独立运行互不相关的;例如:读取到脏数据,同一份数据返回的结果不一致;同一个查询多次返回的结果不一致;
4. 持久性(Durability):事务一旦被执行,对系统的影响是永久的;即使系统故障,其结果依然有效。
二、事务控制命令
1. COMMIT--提交事务;
2. ROLLBACK--回滚事务;
3. SAVEPOINT--创建事务的回滚节点;
4. SET TRANSACTION--设置事务名称;
事务控制命令仅与DML命令INSERT,UPDATE和DELETE一起使用。 在创建表或删除它们时,不能使用它们,因为这些操作会在数据库中自动提交。