2013-04-04 31 views
11

是否有一个模拟CREATE TABLE IF NOT EXISTS创建数据库?Postgres数据库创建如果不存在

背景:我正在编写一个脚本,以便在未知系统上自动设置PostgreSQL中的模式。我不确定是否已经部署了数据库(甚至是模式的一部分),因此如果某些结构已经存在,我想要构建我的代码以使其不会失败(或者最好甚至显示错误)。我想从这个错误中区分阻止我创建数据库的错误(因此将中止未来的模式更改,因为它们不起作用)。

回答

4

不,但您可以查询pg_catalog.pg_database表以查看它是否存在。

+1

你需要在函数中做到这一点,而这在9.3中不起作用,因为Postgres不允许从函数内部或多命令字符串中创建/删除数据库。 – ahanin 2013-10-12 17:39:10

+0

但是你可以在php,python,perl或者你喜欢的任何地方写一个外部脚本。 – Eelke 2014-02-03 13:04:28

+1

使用DROP TABLE IF EXISTS“foo”会不会更简单? CREATE TABLE“foo”; – Enwired 2014-04-14 23:14:14

相关问题