PostgreSQL psql里面默认是自动提交;执行完就马上提交,不能回滚,可以关闭自动提交。
AutoCommit基于客户端(psql、pgadmin、navicat等等)SESSION连接参数AUTOCOMMIT,数据库SERVER端不进行控制;
取消自动提交后,DDL语句也需要显示commit或rollback
1、psql
\set AUTOCOMMIT off#仅对当前session有效
\echo :AUTOCOMMIT #查看当前状态
如上图所示,有*号代表有操作未提交或回滚
仅对于psql工具有效
客户端所在系统用户执行以下语句,家目录下生成.psqlrc
$ echo "\set AUTOCOMMIT off" >>$HOME/.psqlrc
2、pgadmin4
使用pgadmin4 v4.28,默认取消了自动提交,
3、navicat15
自动提交,在执行ddl或dml语句前,执行begin语句,这样可以防止自动提交
4、DBeaver
默认自动提交,可以取消自动提交 窗口-首选项-连接-连接类型-默认自动提交
此软件有只读模式,设置后只能查看,不能新建、删除等操作
如上图所示,1代表1个操作未提交或回滚,如没有未提交或回滚的操作,显示None