【问题标题】:stored procedure is issuing syntax error存储过程发出语法错误
【发布时间】:2015-06-10 12:04:23
【问题描述】:

我正在尝试使用 phpmyadmin 创建一个 mysql 存储过程:

CREATE PROCEDURE AddTableColumn()
BEGIN 

   IF (SELECT COUNT (table_name) 
      FROM information_schema.tables
      WHERE table_name IN ('authors', 'publishers') = 2 ) 
        print 'specified tables exist...';
   ELSE 
        print 'specified tables unavailable...';
   END IF;

END​

上面的代码是一个sn-p,它应该搜索信息模式 对于作者和出版商表的可用性, 然后继续在每个表中添加新列(如果存在)。

打印语句用于调试目的。当我点击 GO 命令,这是错误信息:

MySQL 说:

1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法使用 在'打印'可用...'附近; ELSE print 'unavail...';万一; END'在行 7.

我做错了什么?我什至尝试过其他代码作为测试, 所有失败并出现相同的错误。代码很简单:

BEGIN 

   IF (6 > 4) 
        print 'greater';
   ELSE 
        print 'lesser';
   END IF;

END ​

全部失败。任何帮助将不胜感激。

【问题讨论】:

    标签: mysql stored-procedures


    【解决方案1】:

    'print'MySQL 中无法识别。

    如果您想读回输出,只需在 SP 中使用 select

    如下更改你的 SP 部分:

    DECLARE found_status VARCHAR(255) DEFAULT NULL;
    IF .... 
        SELECT 'specified tables exist...' INTO found_status;
    ELSE 
        SELECT 'specified tables unavailable...' INTO found_status;
    END IF;  
    
    SELECT found_status;
    

    【讨论】:

      猜你喜欢
      • 2018-05-12
      • 1970-01-01
      • 2019-02-02
      • 2011-04-18
      • 2012-04-12
      • 2014-07-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多