如何创建MySQL创建功能?

时间:2013-01-28 18:37:08

标签: mysql

我想创建一个像下面这样的简单函数来完成一项简单的任务:

DELIMITER $$
CREATE FUNCTION f(key TEXT, str TEXT) RETURNS INT
BEGIN
    IF LOCATE(key, str) > 0 THEN
        RETURN 1;
    ELSE
        RETURN 0;
    END IF;
END $$
DELIMITER ;

但我收到了一个错误:

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 'key T
EXT, str TEXT) RETURNS INT
BEGIN
    IF LOCATE(key, str) > 0 THEN
        R' at line 1

有什么问题?

2 个答案:

答案 0 :(得分:3)

该函数有语法错误,因为key是MySql中的保留字。解决方案:重命名参数或将key放在反引号中,如下所示:

CREATE FUNCTION f(`key` TEXT, str TEXT) RETURNS INT

答案 1 :(得分:1)

key是mysql中的一个关键字,放在`之间或使用不同的名称。