ABORT

功能描述

回滚当前事务并且撤销所有当前事务中所做的更改。

作用等同于ROLLBACK,早期SQL有用ABORT,现在推荐使用ROLLBACK。

注意事项

在事务外部执行ABORT语句不会影响事务的执行,但是会抛出一个NOTICE信息。

语法格式

  1. ABORT [ WORK | TRANSACTION ] ;

参数说明

WORK | TRANSACTION

可选关键字,除了增加可读性没有其他任何作用。

示例

  1. --创建表customer_demographics_t1
  2. postgres=# CREATE TABLE customer_demographics_t1
  3. (
  4. CD_DEMO_SK INTEGER NOT NULL,
  5. CD_GENDER CHAR(1) ,
  6. CD_MARITAL_STATUS CHAR(1) ,
  7. CD_EDUCATION_STATUS CHAR(20) ,
  8. CD_PURCHASE_ESTIMATE INTEGER ,
  9. CD_CREDIT_RATING CHAR(10) ,
  10. CD_DEP_COUNT INTEGER ,
  11. CD_DEP_EMPLOYED_COUNT INTEGER ,
  12. CD_DEP_COLLEGE_COUNT INTEGER
  13. )
  14. WITH (ORIENTATION = COLUMN,COMPRESSION=MIDDLE)
  15. ;
  16. --插入记录。
  17. postgres=# INSERT INTO customer_demographics_t1 VALUES(1920801,'M', 'U', 'DOCTOR DEGREE', 200, 'GOOD', 1, 0,0);
  18. --开启事务。
  19. postgres=# START TRANSACTION;
  20. --更新字段值。
  21. postgres=# UPDATE customer_demographics_t1 SET cd_education_status= 'Unknown';
  22. --终止事务,上面所执行的更新会被撤销掉。
  23. postgres=# ABORT;
  24. --查询数据。
  25. postgres=# SELECT * FROM customer_demographics_t1 WHERE cd_demo_sk = 1920801;
  26. cd_demo_sk | cd_gender | cd_marital_status | cd_education_status | cd_purchase_estimate | cd_credit_rating | cd_dep_count | cd_dep_employed_count | cd_dep_college_count
  27. ------------+-----------+-------------------+----------------------+----------------------+------------------+--------------+-----------------------+----------------------
  28. 1920801 | M | U | DOCTOR DEGREE | 200 | GOOD | 1 | 0 | 0
  29. (1 row)
  30. --删除表。
  31. postgres=# DROP TABLE customer_demographics_t1;

相关链接

SET TRANSACTIONCOMMIT | ENDROLLBACK