Mysql 尝试创建接受参数并使用if语句的存储过程
运行一个名为QuerySchema的存储过程,该过程使用名为“SelectedSchema”的参数。此过程将使用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
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'
这是我一开始的错,我没有复制/粘贴我的代码,我只是在这里键入,没有校对。但是,我明白了。谢谢你的回复。