2014-12-08 51 views
0

我正在編寫一個利用JDBC的程序來檢查表是否存在,如果不存在,就創建它。有條件的SQL查詢和JDBC

我計劃包括以下內容:

String query = (some query); 
int createIfNotExists = connection.createStatement().executeUpdate(query); 

但它不是讓我用我的SQL查詢「IF」。爲什麼是這樣?我需要使用一些不同類型的驅動程序嗎?或者,如果只是不允許使用JDBC?有沒有人處理過這個問題,你是怎麼處理的?

+0

'CREATE TABLE IF NOT EXISTS TABLE_NAME ...''? – 2014-12-08 00:13:40

+0

這就是我在想的,鮑里斯,但它不起作用。我將其編輯爲一個更普遍的問題,我認爲這是解決問題的根源。 – 2014-12-08 00:42:13

+0

這取決於你的數據庫。你使用什麼數據庫系統? – 2014-12-08 14:51:55

回答

1
DatabaseMetaData md = connection.getMetaData(); 
String query = ""; 
boolean exist=false 

ResultSet rs = md.getTables(null, null, "table_name", null); 

while (rs.next()) { 
    exist = True ; 
} 

if(!exist){ 
     query="CREATE TABLE table_name ..."; 
     connection.createStatement().executeUpdate(query); 
} 
+0

如果您可以解釋爲什麼在MSFT SQL Server中可用的條件邏輯運算符不可用於JDBC查詢 – 2014-12-08 00:58:02