檢查數據庫的方法是否已經存在或不存在於PostgreSQL中?創建數據庫時出錯postgresql
Iam是PostgreSQL中的新成員。 而且還需要通過jdbc驅動程序從我的Java應用程序中檢查它。
檢查數據庫的方法是否已經存在或不存在於PostgreSQL中?創建數據庫時出錯postgresql
Iam是PostgreSQL中的新成員。 而且還需要通過jdbc驅動程序從我的Java應用程序中檢查它。
我發現這個問題的一個替代的解決方案。通過使用下面的查詢:
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");
}
它的做工精細
沒有在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
這是我得到9.1: –
@FrankHeikens教我沒有測試「CREATE DATABASE不能從功能或多命令字符串來執行」所有案件;我用現有的數據庫檢查了函數語法,但實際上並沒有創建一個。 –