云贝教育 |【PostgreSQL PGCE-091题目解析29】在pg中,update操作默认是否是自动提交?

考试科目:PGCE-E-091

考试题量:44 道单项选择题、29 道多项选择题(每题 2 分)

通过分数:60%

考试时间:60min

本文为++云贝教育刘峰(微信:yunbee_DBA)原创,请尊重知识产权,转发请注明出处,不接受任何抄袭、演绎和未经注明出处的转载。++


在pg中,update操作默认是否是自动提交?

A. 是

B. 不是

C. 不知道

D. 看情况

参考答案:A


解析:

要确认数据库默认设置的参数,通过以下命令确认

sql 复制代码
testdb=# \set
AUTOCOMMIT = 'off'
。。。。省略

设置会话级别AUTOCOMMIT 关闭

sql 复制代码
testdb=# \set AUTOCOMMIT off

查看AUTOCOMMIT

sql 复制代码
testdb=# \echo :AUTOCOMMIT
off

1)在AUTOCOMMIT默认的情况下

sql 复制代码
testdb=# \echo :AUTOCOMMIT
on

实验数据提交状态

sql 复制代码
1、查看初始表的数据量
testdb=# select count(1) from t2;
count
-------
2000
(1 row)

2、执行insert语句
testdb=*# insert into t2 select * from t2;
INSERT 0 2000

3、本窗口查询
testdb=*# select count(1) from t2;
count
-------
4000
(1 row)

4、再开一个窗口执行
testdb=# select count(1) from t2;
count
-------
4000
(1 row)

2)在AUTOCOMMIT=OFF的情况下

sql 复制代码
testdb=# \echo :AUTOCOMMIT
off

实验数据提交状态

sql 复制代码
1、查看初始表的数据量
testdb=# select count(1) from t2;
count
-------
2000
(1 row)

2、执行insert语句
testdb=*# insert into t2 select * from t2;
INSERT 0 2000

3、本窗口查询
testdb=*# select count(1) from t2;
count
-------
4000
(1 row)

4、再开一个窗口执行
testdb=# select count(1) from t2;
count
-------
2000
(1 row)

5、在3的窗口上,执行commit;
testdb=*# commit;
COMMIT
testdb=# select count(1) from t2;
count
-------
4000
(1 row)

6、在4的窗口上再次查询
testdb=# select count(1) from t2;
count
-------
4000
(1 row)

综上实验,可以确认pg的自动提交是关闭状态。

相关推荐
Aloudata4 分钟前
基于 NoETL 语义编织技术构建 AI-Ready 数据底座
数据库·人工智能·数据分析·skill·语义编织
程序员雷欧4 分钟前
大模型应用开发学习第九天
学习
主角1 77 分钟前
NoSQL之Redia配置与优化
数据库·nosql
2402_854808378 分钟前
MySQL高负载下查询中断怎么解决_增加系统内存与调整参数
jvm·数据库·python
2401_8877245010 分钟前
Go语言GORM怎么做分页_Go语言GORM分页查询教程【实用】
jvm·数据库·python
星星也在雾里10 分钟前
MySQL 数据迁移到 PostgreSQL 实战教程
数据库·mysql·postgresql
m0_6403093015 分钟前
SQL在分组聚合时如何减少内存消耗_优化GROUP BY查询计划
jvm·数据库·python
gjc59215 分钟前
直击MySQL致命坑!GROUP_CONCAT默认截断不报错
android·数据库·mysql
alien爱吃蛋挞15 分钟前
【JavaEE】Linux学习指南:基础命令与项目部署
linux·学习
阿凉070217 分钟前
STM32 Flash 扇区分布学习
stm32·嵌入式硬件·学习