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条回答
默认
最新
pg的DDL是可以回滚的。
评论
有用 1
https://www.postgresql.org/docs/15/mvcc-caveats.html
评论
有用 0当然是是DDL语言,操作后即 生效,原数据不会放到rollback中,不能回滚,因此属于事务机制外(隐式提交)。所以翻译没问题。
评论
有用 4pg的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=#
评论
有用 2omm=# 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回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏



