VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

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;

相关链接

SET TRANSACTIONCOMMIT | ENDROLLBACK