mySql函数有问题

mySql函数有问题,mysql,Mysql,我必须在mysql中创建一个返回整数的函数。sql解释器一直告诉我语法有问题。我尽我所能仔细检查了一下,尝试了很多东西,但我就是想不出来 CREATE FUNCTION no_of_paintings_exhibited (exhibition_name VARCHAR(45)) RETURNS INT BEGIN DECLARE number_of_paintings INT; SELECT COUNT(*) INTO number_of_paintings

我必须在mysql中创建一个返回整数的函数。sql解释器一直告诉我语法有问题。我尽我所能仔细检查了一下,尝试了很多东西,但我就是想不出来

CREATE FUNCTION no_of_paintings_exhibited (exhibition_name VARCHAR(45))
RETURNS INT

BEGIN
    DECLARE number_of_paintings INT;

    SELECT
    COUNT(*)
    INTO number_of_paintings
    FROM Exhibition, Shown_at, Painting
    WHERE name = exhibition_name AND Painting.id_no = Shown_at.art;

    RETURN number_of_paintings;

END; //
错误输出:

mysql> CREATE FUNCTION no_of_paintings_exhibited (exhibition_name VARCHAR(45))
-> RETURNS INT
-> 
-> BEGIN
->         DECLARE number_of_paintings 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 5

出现此错误是因为您没有设置分隔符,默认情况下,分号(;)是分隔符,一旦找到第一个分号,它就会尝试执行并抛出此错误

执行以下操作(在创建函数之前,将分隔符设置为$$或//,下面是我使用的$$),然后在创建函数之后再次将分隔符设置为分号

DELIMITER $$
CREATE FUNCTION ...
..
END;
$$
DELIMITER ;

请尝试此
声明图片的数量;设置绘画的数量=0我尝试添加默认值并使用集合表达式。无骰子:(你能检查展览中的
,显示在,绘画
语句吗?用什么方法?如果我自己运行'Select'语句,只删除'INTO'语句,查询被正确地插入并返回正确的结果,它
进入
作为
选择计数(*)作为画作的数量
我不确定。SELECT INTO命令创建新表,可以将数据从一个数据库复制到另一个数据库
DELIMITER $$
CREATE FUNCTION ...
..
END;
$$
DELIMITER ;