存储过程发出语法错误
Posted
技术标签:
【中文标题】存储过程发出语法错误【英文标题】: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
全部失败。任何帮助将不胜感激。
【问题讨论】:
【参考方案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;
【讨论】:
以上是关于存储过程发出语法错误的主要内容,如果未能解决你的问题,请参考以下文章