2013-04-04 249 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

相關問題