ABORT
功能描述
回滚当前事务并且撤销所有当前事务中所做的更改。
作用等同于ROLLBACK,早期SQL有用ABORT,现在推荐使用ROLLBACK。
注意事项
在事务外部执行ABORT语句不会影响事务的执行,但是会抛出一个NOTICE信息。
语法格式
ABORT [ WORK | TRANSACTION ] ;
参数说明
WORK | TRANSACTION
可选关键字,除了增加可读性没有其他任何作用。
示例
1、创建表customer_demographics_t1。
CREATE TABLE customer_demographics_t1
(
CD_DEMO_SK INTEGER NOT NULL,
CD_GENDER CHAR(1) ,
CD_MARITAL_STATUS CHAR(1) ,
CD_EDUCATION_STATUS CHAR(20) ,
CD_PURCHASE_ESTIMATE INTEGER ,
CD_CREDIT_RATING CHAR(10) ,
CD_DEP_COUNT INTEGER ,
CD_DEP_EMPLOYED_COUNT INTEGER ,
CD_DEP_COLLEGE_COUNT INTEGER
)
WITH (ORIENTATION = COLUMN,COMPRESSION=MIDDLE);
2、插入记录。
INSERT INTO customer_demographics_t1 VALUES(1920801,'M', 'U', 'DOCTOR DEGREE', 200, 'GOOD', 1, 0,0);
3、开启事务。
START TRANSACTION;
4、更新字段值。
UPDATE customer_demographics_t1 SET cd_education_status= 'Unknown';
5、终止事务,上面所执行的更新会被撤销掉。
ABORT;
6、开启扩展输出。
\x on
7、查询数据。
SELECT * FROM customer_demographics_t1 WHERE cd_demo_sk = 1920801;
返回结果为:
-[ RECORD 1 ]---------+---------------------
cd_demo_sk | 1920801
cd_gender | M
cd_marital_status | U
cd_education_status | DOCTOR DEGREE
cd_purchase_estimate | 200
cd_credit_rating | GOOD
cd_dep_count | 1
cd_dep_employed_count | 0
cd_dep_college_count | 0
8、删除测试表。
DROP TABLE customer_demographics_t1;