Mysql 尝试创建接受参数并使用if语句的存储过程

Mysql 尝试创建接受参数并使用if语句的存储过程,mysql,stored-procedures,if-statement,Mysql,Stored Procedures,If Statement,运行一个名为QuerySchema的存储过程,该过程使用名为“SelectedSchema”的参数。此过程将使用IF语句从以下视图返回数据: Parameter View to Query TABLES INFORMATION_SCHEMA.TABLES COLUMNS INFORMATION_SCHEMA.COLUMNS VIEWS INFORMATION_SCHEMA.VIEWS ROUTINES INFORMATION_SCHEMA.ROUT

运行一个名为QuerySchema的存储过程,该过程使用名为“SelectedSchema”的参数。此过程将使用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;                                                                                             
 //        
错误1109(42S02):字段列表中的表“信息\架构”未知

^是我犯的错误

但是,如果我使用

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

我得到了想要的结果。因为,我现在只为参数选择了一个选项,所以我不需要else语句,对吗?

没关系,我想出来了

  IF SelectedSchema = INFORMATION_SCHEMA.TABLES 
需要

  IF SelectedSchema = 'INFORMATION_SCHEMA.TABLES' 

这是我一开始的错,我没有复制/粘贴我的代码,我只是在这里键入,没有校对。但是,我明白了。谢谢你的回复。