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