读书笔记--SQL必知必会20--管理事务处理

20.1 事务处理

使用事务处理(transaction processing),通过确保成批的SQL操作要么完全执行,要么完全不执行,来维护数据库的完整性。

  • 如果没有错误发生,整组语句提交给数据库表
  • 如果发生错误,则进行回退(撤销),将数据库恢复到某个已知且安全的状态

事务(transaction):一组SQL语句
回退(rollback):撤销指定SQL语句的过程
提交(commit):将未存储的SQL语句结果写入数据库表
保留点(savepoint):事务处理中设置的临时占位符(placeholder),可以对它发布回退

事务处理用来管理INSERT/UPDATE/DELETE语句,不能回退CREATE或DROP操作。

20.2 控制事务处理

不同的DBMS对实现事务处理的语法不同。
管理事务的关键在于将SQL语句组分解为逻辑块,并明确规定数据何时应该回退,何时不应该回退。

20.2.1 使用ROLLBACK

SQL的ROLLBACK命令用来回退(撤销)SQL语句。
在事务处理块中,DELETE操作(与INSERT和UPDATE操作一样)并不是最终的结果。

20.2.2 使用COMMIT

隐式提交(implicit commit),即提交(写或保存)操作是自动进行的。
一般的SQL语句都是隐式提交,针对数据库表直接执行和编写的。

在事务处理块中,可以根据DBMS的设置,选择是否进行隐式提交。

使用COMMIT语句,进行明确的提交。

20.2.3 使用保留点

在事务处理块中的合适位置放置占位符,可以支持回退部分事务。如果需要回退,可以回退到某个占位符。
在SQL中,这些占位符称为保留点。

在SQL代码中可以设置任意多的保留点,但每个保留点的名称必须唯一。

根据实际需要设置,以便能够灵活地进行回退。

posted @ 2016-12-31 22:19  Anliven  阅读(366)  评论(0编辑  收藏  举报