2012-11-15 95 views
-1

檢查數據庫的方法是否已經存在或不存在於PostgreSQL中?創建數據庫時出錯postgresql

Iam是PostgreSQL中的新成員。 而且還需要通過jdbc驅動程序從我的Java應用程序中檢查它。

回答

1

我發現這個問題的一個替代的解決方案。通過使用下面的查詢:

 ResultSet res = st.executeQuery("select count(*) from pg_catalog.pg_database where datname = 'sample'") ; 
     res.next(); 
     int count = res.getInt("count"); 
     System.out.println("Count : " + count); 
     if(count == 0) { 
     st.executeUpdate("CREATE DATABASE sample"); 
     } 

它的做工精細

3

沒有在PostgreSQL中CREATE DATABASE沒有IF NOT EXISTS選項。見CREATE DATABASE

您可以檢查pg_database,看是否存在數據庫,並且只嘗試,如果它不創建它。

您需要通過dblink要做到這一點,因爲限制弗蘭克在評論中指出的:

regress=> SELECT create_database_if_not_exists('test'); 
ERROR: CREATE DATABASE cannot be executed from a function or multi-command string 
CONTEXT: SQL statement "CREATE DATABASE test" 
PL/pgSQL function create_database_if_not_exists(text) line 6 at EXECUTE statement 
+0

這是我得到9.1: –

+0

@FrankHeikens教我沒有測試「CREATE DATABASE不能從功能或多命令字符串來執行」所有案件;我用現有的數據庫檢查了函數語法,但實際上並沒有創建一個。 –