Oracle执行 DDL语句如CREATE, DROP, RENAME, or ALTER时,会隐式提交事务;PG在执行这类语句时,不会提交事务,需显式提交。
--------------------------- Session A
drop table if exists t1;
-- 开启事务
begin;
-- 查询当前事务号
select txid_current();
-- 创建表&插入100w数据
create table t1(id int,c1 varchar(20));
-- 查询当前事务号
select txid_current();
insert into t1 select generate_series(1,1000000),'#TESTDATA#';
rollback;-- 回滚事务
select count(*) from t1;
提示:
ERROR: relation "t1" does not exist
LINE 1: select count(*) from t1;
如果是Oracle数据库,创建数据表成功后会隐式提交事务,插入数据后回滚,数据表仍会存在。
参考:
https://wiki.postgresql.org/wiki/Transactional_DDL_in_PostgreSQL:_A_Competitive_Analysis
编辑推荐:
- Oracle vs PostgreSQL,研发注意事项(2)-DDL语句与事务03-14
- Oracle vs PostgreSQL,研发注意事项(3)- 事务回滚之UPDATE操作解析03-14
- postgresql10.3 检查点调整03-14
- postgresql 检查点调整 checkpoint 转03-14
- 解决MySQL导入SQL时报错1067–Invaliddefaultvaluefor‘’问题03-14
- MySQL数据表常用编码类型使用及说明03-14
- 使用Navicat连接远程服务器中在docker中运行的MySQL数据库全过程03-14
- 腾讯“龙虾”开启全国巡装:为用户免费安装,覆盖北上广深等全国 17 个城市03-14
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
