2011-03-02 56 views
0

我正在安裝MySQL的安裝的WPF應用程序, 所以在安裝前我想檢查是否存在mysql.proc表。 我GOOGLE了一下,並結束了與查詢如何檢查表mysql.proc是否存在

select * from information_schema.Tables 
    where Table_schema = Schema() and Table_Name = 'mysql.proc' 

該查詢返回一個空行。

我也嘗試過簡單的SELECT語句 select * from mysql.proc, 這返回表的所有存儲過程的名稱,但如果這個表沒有存在,那麼它會拋出的C#代碼的異常。

那麼有什麼辦法可以從c#中啓動查詢並根據是否存在mysql.proc表獲取布爾值?

回答

1

嘗試SHOW TABLES FROM mysql LIKE 'proc'。如果沒有結果行,則該表不存在。如果有一行,表格就存在。請注意,這種方法在RDBMS中不可移植,儘管這似乎不是您的問題。

至於你的第一個查詢,SCHEMA()返回默認數據庫,所以如果它不是「mysql」,查詢將失敗。同樣,Table_Name列中的數據不包含數據庫名稱,因此與'mysql.proc'比較將始終失敗。