暂无图片
PG文档翻译疑问
我来答
分享
严少安
暂无图片
2022-12-11
PG文档翻译疑问

PG官档中描述:

Some DDL commands, currently only TRUNCATE and the table-rewriting forms of ALTER TABLE, are not MVCC-safe.

请问如何翻译妥当?
TRUNCATE 是否包含在 Some DDL commands 之中?

我来答
添加附件
收藏
分享
问题补充
10条回答
默认
最新
huayumicheng

pg的DDL是可以回滚的。

暂无图片 评论
暂无图片 有用 1
暂无图片
严少安
暂无图片

https://www.postgresql.org/docs/15/mvcc-caveats.html

暂无图片 评论
暂无图片 有用 0
游湖
2022-12-11
当然是是DDL语言,操作后即 生效,原数据不会放到rollback中,不能回滚,因此属于事务机制外(隐式提交)。所以翻译没问题。
游湖

当然是是DDL语言,操作后即 生效,原数据不会放到rollback中,不能回滚,因此属于事务机制外(隐式提交)。所以翻译没问题。

暂无图片 评论
暂无图片 有用 4
游湖
答主
2022-12-11
在pg 里truncate 是事务安全的,也就是是说是可以回滚的
农夫三拳

pg的truncate 可以rollback

omm=# select * from t1; id ---- 1 2 (2 rows) omm=# begin; BEGIN omm=# select * from t1; id ---- 1 2 (2 rows) omm=# truncate table t1; omm=# TRUNCATE TABLE omm=# omm=# select * from t1; id ---- (0 rows) omm=# rollback; ROLLBACK omm=# end omm-# ; WARNING: there is no transaction in progress COMMIT omm=# select * from t1; id ---- 1 2 (2 rows) omm=#
暂无图片 评论
暂无图片 有用 2
手机用户5704
2022-12-11
我测试的不可以回滚
游湖
2022-12-11
你们这是opengauss吧
游湖
2022-12-11
在pg 里truncate 是事务安全的,也就是是说是可以回滚的
手机用户5704

omm=# create table t (id int);
CREATE TABLE
omm=# insert into t values(1);
INSERT 0 1
omm=# truncate table t;
TRUNCATE TABLE
omm=# rollback;
NOTICE: there is no transaction in progress
ROLLBACK

暂无图片 评论
暂无图片 有用 2
农夫三拳
2022-12-11
要用begin;开始事务,默认是自动提交的
hgb524
2022-12-11
打卡打卡楼。学习了。下雪了。核酸了。
H
hgb524

打卡打卡楼。学习了。下雪了。核酸了。

暂无图片 评论
暂无图片 有用 1
游湖

你们这是opengauss吧。

暂无图片 评论
暂无图片 有用 1
Oracle

路过,学习了学习了学习了学习了学习了学习了学习了

暂无图片 评论
暂无图片 有用 0
风车

truncate后原数据不会放到REDO中

暂无图片 评论
暂无图片 有用 0
严少安
暂无图片

抬杠说: create table 也能回滚,是不是可以说也是dml呢 😅

暂无图片 评论
暂无图片 有用 0
农夫三拳
2022-12-12
要与时俱进,只要是能回滚的,全划dml里面
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏