Mysql函数的错误语法

时间:2018-02-22 03:32:42

标签: mysql function

想知道这个语法的错误是什么,因为给出的所有样本都与我尝试创建的1相似

CREATE FUNCTION test(regionCode varchar(5)) RETURNS CHAR(50)
DETERMINISTIC
READ SQL DATA
BEGIN
DECLARE NAME_FOUND CHAR(50);
SELECT 'abc' into NAME_FOUND from dual;
RETURN NAME_FOUND;
END

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

mysql Functin只有READS SQL DATA而不是READ SQL DATA,这是你在函数中所犯的错误。请查看链接以获取更多详细信息:

https://dev.mysql.com/doc/refman/5.7/en/stored-programs-logging.html

READS SQL DATA明确告诉MySQL该函数只能从数据库中读取数据,因此,它不包含修改数据的指令,但它包含读取数据的SQL指令(e.q. SELECT)。

DELIMITER $$
CREATE FUNCTION test(regionCode varchar(5)) RETURNS CHAR(50)
DETERMINISTIC
READS SQL DATA
BEGIN
DECLARE NAME_FOUND CHAR(50);
SELECT 'abc' into NAME_FOUND from dual;
RETURN NAME_FOUND;
END

答案 1 :(得分:0)

 CREATE FUNCTION test(regionCode varchar(5)) RETURNS CHAR(50)

READS SQL DATA
DETERMINISTIC
BEGIN
DECLARE NAME_FOUND CHAR(50);
SELECT 'abc' into NAME_FOUND from dual;
RETURN NAME_FOUND;
END 

尝试这个查询