2010-06-02 33 views
1

該查詢產生一個錯誤存在,因爲表2不存在:檢查表在

Select * FROM table WHERE table2.id IS NOT NULL 

有沒有這樣的事了檢查表2之前使用該ID的支票?

Select * FROM table WHERE (EXIST(table2) AND table2.id IS NOT NULL) or not EXIST(table2) 
+0

我的SQL可能會生鏽,但是當您沒有將它包含在查詢的FROM部分中時,如何引用「table2」? – 2010-06-02 14:28:54

回答

3

您需要查詢該系統表:

SELECT table_name 
FROM information_schema.tables 
WHERE table_schema = 'yourdatabasename' 
AND table_name = 'table2'; 

如果返回行,那麼你的表存在。

0

我不相信標準SQL中有任何命令或函數可以執行此操作。您可以在發出SQL查詢之前查詢數據字典以檢查表是否存在,如下所示:

SELECT table_name FROM INFORMATION_SCHEMA.tables WHERE table_name ='xxx';

雖然我不認爲它可以在單個SQL語句中完成。