可以看到的是,在
PostgreSQL
中,
autocommit
功能是默认开启的,在这种情形之下,
每条
SQL
语句都自成一个事务,当
SQL
语句一旦执行完便提交此事务。
而当我们想将多个
SQL
语句,组成一个大的事务操作时,可以将这多个
SQL
语句置于
BEGIN
;
... END/COMMIT;
BEGIN;
--
相关
SQL
操作
END; -- COMMIT
;
而在
Oracle
中
autocommit
则是默认关闭的,当进行了一个或多个修改数据的操作时,
需要在最后显式使用
COMMIT
命令,不然当连接断开时,之前对数据库进行的相关操作将
会被回滚。(注:
DDL
除外,在
Oracle
数据库中
DDL
隐含了
COMMIT
操作)
--
一个或多个操作
COMMIT
;
如果
PostgreSQL
想和
Oracle
在这方面保持一致的话,简单修改一下
autocommit
参数,
将其置为
of
即可,接下来介绍一下如何修改该参数。
2.2
、修改
autocommit
参数设置
在
PostgreSQL
中修改该参数我们可以使用
\set AUTOCOMMIT of/on
(区分大小写),
如下所示
[postgres@halo-centos-8-release ~]$ psql
psql (17beta1)
Type "help" for help.
postgres=# \set AUTOCOMMIT off
postgres=# \set
AUTOCOMMIT = 'off'
COMP_KEYWORD_CASE = 'preserve-upper'
DBNAME = 'postgres'
......
postgres=# \set AUTOCOMMIT on
postgres=# \set
AUTOCOMMIT = 'on'
评论