postgresql不提供"create database IF NOT EXISTS dbname“结构的设计逻辑是什么?

w6lpcovy  于 6个月前  发布在  PostgreSQL
关注(0)|答案(1)|浏览(109)

我知道它在PostgreSQL中是不可用的,我只要求解释为什么它没有提供在其他RDBMS中可用的这个有用的东西。虽然,它可以使用具有PostgreSQL接口的编程语言来实现,但可能有一个特定的原因,设计者决定排除它。我想知道排除这个结构的优点。
类似问题的其他答案似乎强调了如何用其他方式来模仿它。我不期望这样。我只想要这个的设计逻辑。如果我错过了任何这样的问题,其中有一个答案,请指出我。

qmb5sa22

qmb5sa221#

请参阅this thread on the pgsql-hackers list,了解如何尝试引入该功能:
FWIW,我通常对CREATE IF NOT EXISTS语义持敌对态度,因为它的语义非常模糊:它确保了一个同名的对象存在,但是你不能保证它的属性或内容。对象越复杂,问题就越大......整个数据库是我们拥有的最复杂的对象。所以IMV,我们没有这个“特性”是一件好事。
我们确实有DROP DATABASE IF EXISTS,我认为使用它和CREATE是一种定义更好的方法。

相关问题