微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MySQL存储函数创建错误ERROR 1064和1327

我正在使用MySQL v5.1.36,我正在尝试使用此代码创建存储函数.

DELIMITER //
CREATE FUNCTION `modx`.getSTID (x VARCHAR(255)) RETURNS INT DETERMINISTIC
    BEGIN
    DECLARE y INT;
    SELECT id INTO y
    FROM `modx`.coverage_state
    WHERE `coverage_state`.name = x;
    RETURN y;
    END//

当进入MysqL控制台时,我得到了这个回复.

MysqL>  DELIMITER //
MysqL>  CREATE FUNCTION `modx`.getSTID (x VARCHAR(255)) RETURNS INT DETERMINISTIC
    ->          BEGIN
    ->          DECLARE y INT;
ERROR 1064 (42000): You have an error in your sql Syntax; check the manual that
corresponds to your MysqL server version for the right Syntax to use near '' at
line 3
MysqL>          SELECT id INTO y
    ->          FROM `modx`.coverage_state
    ->          WHERE `coverage_state`.name = x;
ERROR 1327 (42000): Undeclared variable: y
MysqL>          RETURN y;
ERROR 1064 (42000): You have an error in your sql Syntax; check the manual that
corresponds to your MysqL server version for the right Syntax to use near 'RETUR
N y' at line 1
MysqL>          END//

从我在网上找到的我的语法是正确的.我究竟做错了什么?

最佳答案
MysqL控制台创建函数/过程时,第一个命令应该是DELIMITER //.否则,它使用认分隔符(;),

原文地址:https://www.jb51.cc/mysql/432853.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐