事务自动提交

用户可以通过如下SQL语句打开或者关闭事务自动提交开关:

SET AUTOCOMMIT = [ON|OFF];

如果打开事务自动提交开关,那么,系统对每一个可执行SQL语句执行前都开始一个事务,并且在语句执行后进行自动提交,也就是一个可执行SQL语句构成一个事务。

系统缺省设置事务自动提交开关为 打开 状态。事务提交开关的设置仅对于指定的连接或者当前连接有效,对其它连接没有影响。

示例

示例1: 设置自动提交参数

--  清理环境
DROP TABLE tab1 CASCADE;


--  创建表
CREATE TABLE tab1 (a INT);

--  设置自动提交参数 —— 自动提交
SET AUTOCOMMIT = ON;

--  插入数据
INSERT INTO tab1 VALUES(100);
INSERT INTO tab1 VALUES(200);


SELECT * FROM tab1 ORDER BY a;
A(int)      |
------------
100         |
------------
200         |
总数目:2

--  设置自动提交参数 —— 非自动提交
SET AUTOCOMMIT = OFF;

INSERT INTO tab1 VALUES(200);


SELECT * FROM tab1 ORDER BY a;
A(int)      |
------------
100         |
------------
200         |
------------
200         |
总数目:3

--  回滚事务
ROLLBACK WORK;


--  非自动提交的数据已不存在
SELECT * FROM tab1 ORDER BY a;
A(int)      |
------------
100         |
------------
200         |
总数目:2

--  重置自动提交参数
RESET AUTOCOMMIT;

--  删除表
DROP TABLE tab1;