存储过程发出语法错误

时间:2015-06-10 12:04:24

标签: mysql stored-procedures

我正在尝试使用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​

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

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

MySQL说:

  

1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以获得正确的语法   靠近'print'avail ...'; ELSE打印'无用......';万一;结束'在线   7。

我在做错了什么?我甚至尝试过其他代码作为测试, 所有失败都有同样的错误。代码简单如下:

BEGIN 

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

END ​
全都失败了。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

{p} '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;