云贝教育 |【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的自动提交是关闭状态。

相关推荐
虾球xz24 分钟前
游戏引擎学习第315天:取消排序键的反向顺序
开发语言·c++·学习·游戏引擎
DarkChunk32 分钟前
[LevelDB]关于LevelDB存储架构到底怎么设计的?
数据库
martian66539 分钟前
达梦数据库中无效触发器的排查与解决方案指南
开发语言·数据库
网硕互联的小客服41 分钟前
RAID 阵列有哪些?分别有什么作用?
运维·服务器·网络·数据库·网络安全·raid
玻璃瓶和纸飞机1 小时前
Java常用类库大全(学习笔记)持续更新中
java·笔记·学习
菜一头包1 小时前
QT5中的QGraphics图形视图框架学习笔记(Item、Scene和View)
笔记·qt·学习
蓝婷儿1 小时前
Python 爬虫入门 Day 1 - 网络请求与网页结构基础
开发语言·python·学习
s_little_monster2 小时前
【Linux开发】海思摄像头内部视频处理模块
linux·运维·经验分享·学习·音视频·嵌入式开发·海思
noravinsc3 小时前
django filter 统计数量 按属性去重
数据库·django·sqlite
rufeike6 小时前
Redis学习笔记
redis·笔记·学习