2014-03-25 34 views
0

運行一個名爲QuerySchema的存儲過程,該過程使用名爲「SelectedSchema」的參數。此過程將使用IF語句從以下視圖返回數據:嘗試創建採用參數的存儲過程,並使用if語句

Parameter  View to Query 
TABLES  INFORMATION_SCHEMA.TABLES 
COLUMNS  INFORMATION_SCHEMA.COLUMNS 
VIEWS  INFORMATION_SCHEMA.VIEWS 
ROUTINES INFORMATION_SCHEMA.ROUTINES 

^這就是我的任務說的。

試圖獲得代碼的基本佈局。

CREATE PROCEDURE QuerySchema(SelectedSchema VARCHAR(70))            
IF SelectedSchema = INFORMATION_SCHEMA.TABLES              
THEN SELECT table_name, table_type, engine               
FROM INFORMATION_SCHEMA.TABLES                  
WHERE table_schema='dmccann';                  
END IF;                        
//   

ERROR 1109(42S02):未知表 'INFORMATION_SCHEMA' 在字段列表

^是我得到的錯誤。

,但如果我只是用

SELECT table_name, table_type, engine               
FROM INFORMATION_SCHEMA.TABLES                  
WHERE table_schema='dmccann'; 
// 

我得到了想要的結果。既然,我現在只參與一個參數的選擇,我不需要一個else語句,是嗎?

+0

這是我的錯,一開始,我並沒有複製/粘貼我的代碼,我只是將它打印了這裏,並沒有證據讀它。但是,我明白了。謝謝你的迴應。 –

回答

0

沒關係,我想通了。

IF SelectedSchema = INFORMATION_SCHEMA.TABLES 

需要的是

IF SelectedSchema = 'INFORMATION_SCHEMA.TABLES' 
相關問題