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

相关推荐
南宫生5 分钟前
力扣-图论-17【算法学习day.67】
java·学习·算法·leetcode·图论
sanguine__21 分钟前
Web APIs学习 (操作DOM BOM)
学习
独行soc39 分钟前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍08-基于时间延迟的SQL注入(Time-Based SQL Injection)
数据库·sql·安全·渗透测试·漏洞挖掘
White_Mountain1 小时前
在Ubuntu中配置mysql,并允许外部访问数据库
数据库·mysql·ubuntu
Code apprenticeship1 小时前
怎么利用Redis实现延时队列?
数据库·redis·缓存
百度智能云技术站1 小时前
广告投放系统成本降低 70%+,基于 Redis 容量型数据库 PegaDB 的方案设计和业务实践
数据库·redis·oracle
装不满的克莱因瓶1 小时前
【Redis经典面试题六】Redis的持久化机制是怎样的?
java·数据库·redis·持久化·aof·rdb
数据的世界012 小时前
.NET开发人员学习书籍推荐
学习·.net
四口鲸鱼爱吃盐3 小时前
CVPR2024 | 通过集成渐近正态分布学习实现强可迁移对抗攻击
学习
梦想平凡3 小时前
PHP 微信棋牌开发全解析:高级教程
android·数据库·oracle