【发布时间】:2010-11-09 16:10:28
【问题描述】:
我的数据库背景是 Oracle,所以我惊讶地发现 Postgres 在事务中包含模式更改 - 如果您开始一个,创建一个表然后回滚,该表就会消失。它也适用于添加和删除列。显然这是非常好的。
我们即将对部署依赖此功能的架构增量的方式进行一些更改。在此之前,我想了解交易保证的延伸范围,但我在文档中找不到任何相关信息。我假设我只是使用了错误的搜索词——我的搜索只是转到包含“事务”、“创建”和“表”等词的大命令列表。
谁能给我一些关于 Postgres 中事务模式更改的文档或讨论的指针? (我们使用的是 8.2.13,尽管我们将在不久的将来升级。)或者只是一些关于不会包含在事务中的语句的详细信息?
【问题讨论】:
-
是的 - 该功能对于编写升级脚本非常有用。
-
嘎——这些都是很好的答案。最后,决定因素是 grep 希望是一个更详尽的列表。 (虽然它没有提到 REINDEX。)谢谢。
-
depesz 为 postgresql 社区做出了巨大贡献,例如通过他的博客。如果你问我 - 他应该得到很高的声誉分数!
-
SQL Server 还可以从同一事务中回滚 DDL 和数据更改。但是每条 DDL 语句必须在批处理中首先出现(由 GO 分隔)。 DDL 没有与其他事务正确隔离,例如在 postgres 中,但重要的是在发生错误时完全回滚。
标签: postgresql transactions schema ddl