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

问题描述 投票:0回答:1

我知道它在 PostgreSQL 中不可用,我只会要求说明为什么其中没有提供此帮助,而其他 RDBMS 中提供了此帮助。 虽然它可以使用具有 PostgreSQL 接口的编程语言来实现,但设计者决定排除它可能是有特定原因的。我想知道排除这种构造的优点。

类似问题的其他答案似乎强调了如何使用其他方式来模仿它。我不期待那样。我只想要这个的设计逻辑。如果我错过了任何此类问题,而该问题对此有答案,请指出。

postgresql rdbms ddl ordbms
1个回答
0
投票

查看 pgsql-hackers 列表中的这个帖子,了解引入该功能的尝试:

FWIW,我通常对 CREATE IF NOT EXISTS 语义持敌意 董事会,因为其极其模糊的语义:它确保 存在具有该名称的对象,但您无法保证 关于其属性或内容。物体越复杂, 问题变得更大......整个数据库是最重要的 我们拥有的复杂对象。所以IMV,事实上我们没有 这个“功能”是个好东西。

我们确实有 DROP DATABASE IF EXISTS,我认为接下来使用它 by CREATE 是一种定义更明确的方法。

© www.soinside.com 2019 - 2024. All rights reserved.