【发布时间】:2011-03-25 07:46:40
【问题描述】:
我正在使用 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//
从我在网上可以找到的内容来看,我的语法是正确的。我做错了什么?
【问题讨论】:
标签: sql mysql function mysql-error-1064 mysql-error-1327