事务自动提交¶
用户可以通过如下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;