【问题标题】:Trying to create a stored procedure that takes a parameter, and uses an if statement尝试创建一个带有参数并使用 if 语句的存储过程
【发布时间】:2014-03-25 20:15:25
【问题描述】:

运行一个名为 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):字段列表中的未知表“INFORMATION_SCHEMA”

^ 是我得到的错误。

但是,如果我只是使用

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

我得到了想要的结果。由于此时我只选择了一个参数,所以我不需要 else 语句,对吗?

【问题讨论】:

  • 那是我一开始的错,我没有复制/粘贴我的代码,我只是在这里输入并没有校对它。但是,我想通了。感谢您的好评。

标签: mysql stored-procedures if-statement


【解决方案1】:

没关系,我想通了。

  IF SelectedSchema = INFORMATION_SCHEMA.TABLES 

需要

  IF SelectedSchema = 'INFORMATION_SCHEMA.TABLES' 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-17
    • 2015-04-22
    • 1970-01-01
    • 1970-01-01
    • 2021-04-30
    • 1970-01-01
    • 2019-02-27
    相关资源
    最近更新 更多