MySQL查询 - 奇怪的语法错误

时间:2014-03-29 11:25:51

标签: mysql sql

我使用phpmyadmin和MySQL运行一个简单的查询,创建一个检查某条记录是否存在的函数。它不断抛出syntax error at line 7 with Declare。我不知道为什么。我确实尝试使用内置函数创建器,但它搞砸了,我不喜欢它。任何帮助表示赞赏!

CREATE FUNCTION  check_if_card_exists (_name TEXT)
RETURNS INT
DETERMINISTIC
READS SQL DATA

    BEGIN
    DECLARE res INT; --line 7
    IF EXISTS (SELECT `name` FROM `cards` WHERE `name` = _name)
    THEN SET res = 1;
    ELSE SET res = 0;
    END IF;
    RETURN res;
    END

1 个答案:

答案 0 :(得分:1)

尝试以下方法:

DELIMITER $$
DROP FUNCTION IF EXISTS `check_if_card_exists`$$

CREATE FUNCTION  check_if_card_exists (_name TEXT)
RETURNS INT
DETERMINISTIC
READS SQL DATA

    BEGIN
    DECLARE res INT; --line 7
    IF EXISTS (SELECT `name` FROM `cards` WHERE `name` = _name)
    THEN SET res = 1;
    ELSE SET res = 0;
    END IF;
    RETURN res;
    END$$

DELIMITER ;