如何判斷數據中某張表是否存在,如果不存在則創建它? 最笨的方法就是寫個select從表中讀數據,捕獲異常的同時就知道了改表沒有創建。 此法不通,因為這個時候的異常似乎被認定為了系統錯誤,於是後面創建表的代碼被忽略了。 大部分人的做法類似於select system.table where tabbl ...
如何判斷數據中某張表是否存在,如果不存在則創建它?
最笨的方法就是寫個select從表中讀數據,捕獲異常的同時就知道了改表沒有創建。
此法不通,因為這個時候的異常似乎被認定為了系統錯誤,於是後面創建表的代碼被忽略了。
大部分人的做法類似於select system.table where tabblename='***',反正我曾經用類似的句子查詢過DB2,是成功的。
是不是每類資料庫都有上面的查詢語句呢?是否查詢語句相似呢?正當我打算放棄的時候發現了下麵的代碼,這段代碼是我從一個國外的論壇中找到的,儘管我不知道它是不是萬能鑰匙,但是他這次對我而言確成了萬能的:
java.sql.Connection con = getYourConnection(); ResultSet rs = con.getMetaData().getTables(null, null, "yourTable", null); if (rs.next()) { //yourTable exist }else { //yourTable not exist }
select count(*) from User_Tab_Columns where table_name='T_E_KMCJB' and column_name='JCBZ1';
(檢查某表中是否存在某個欄位,註意大寫。)
select count(*) from all_tables where table_name='TD_KMDM';
(檢查某資料庫內,是否存在某張表,註意大寫。)
註:參考鏈接:http://blog.csdn.net/believejava/article/details/38587879