事物默认自动提交AUTOCOMMIT

本文介绍了两种在数据库中禁用自动提交的方法:一是通过设置AUTOCOMMIT为off,需要注意大小写;二是通过显式使用BEGIN来开启新的事务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

修改为非自动提交的方式有两种:
1、# \set AUTOCOMMIT off    --注意此处的AUTOCOMMIT要大写,小写无效
highgo=# \echo :autocommit
:autocommit
highgo=# \echo :AUTOCOMMIT
on
highgo=# \set autocommit off
highgo=# \echo :AUTOCOMMIT
on
highgo=# \set AUTOCOMMIT off
highgo=# \echo :AUTOCOMMIT
off
highgo=# select * from test;
 id | name 
----+------
(0 rows)


highgo=# insert into test values (1);
INSERT 0 1
highgo=# insert into test values (2);
INSERT 0 1
highgo=# select * from test;
 id | name 
----+------
  1 | 
  2 | 
(2 rows)


highgo=# rollback;
ROLLBACK
highgo=# select * from test;
 id | name 
----+------
(0 rows)




2、显示使用BEGIN
highgo=# \echo :AUTOCOMMIT
on
highgo=# begin;                ---此处begin大小写都生效
BEGIN
highgo=# 
highgo=# select * from test;
 id | name 
----+------
(0 rows)


highgo=# insert into test values (1);
INSERT 0 1
highgo=# select * from test;
 id | name 
----+------
  1 | 
(1 row)


highgo=# rollback;
ROLLBACK
highgo=# select * from test;
 id | name 
----+------
(0 rows)




++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
highgo=# show autocommit;
 autocommit 
------------
 on
(1 row)


highgo=# \set AUTOCOMMIT off
highgo=# show autocommit;
 autocommit 
------------
 on
(1 row)


highgo=# \echo :AUTOCOMMIT
off
highgo=# \echo :autocommit
:autocommit


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
show autocommit;和\echo :autocommit的区别
highgo=# \set autocommit on
highgo=# show autocommit;
 autocommit 
------------
 on
(1 row)


highgo=# \set AUTOCOMMIT OFF
highgo=# show autocommit;   
 autocommit 
------------
 on
(1 row)


highgo=# \SET AUTOCOMMIT off
Invalid command \SET. Try \? for help.
highgo=# show autocommit;
 autocommit 
------------
 on
(1 row)


highgo=# \SET autocommit off
Invalid command \SET. Try \? for help.
highgo=# \set AUTOCOMMIT off
highgo=# show autocommit;
 autocommit 
------------
 on
(1 row)


highgo=# \set autocommit off
highgo=# show autocommit;
 autocommit 
------------
 on
(1 row)


highgo=# \set autocommit  off
highgo=# show autocommit;
 autocommit 
------------
 on
(1 row)


highgo=# \echo :AUTOCOMMIT
off
highgo=# show autocommit;
 autocommit 
------------
 on
(1 row)
highgo=# \set autocommit on
highgo=# \echo :autocommit
on
highgo=# show autocommit;
 autocommit 
------------
 on
(1 row)


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值