创建功能 - 错误1064
问题描述:
我通过phpMyAdmin的 http://www.databasejournal.com/features/mysql/article.php/3569846/MySQL-Stored-Functions.htm创建功能 - 错误1064
mysql> DELIMITER |
mysql>
CREATE FUNCTION WEIGHTED_AVERAGE (n1 INT, n2 INT, n3 INT, n4 INT)
RETURNS INT
DETERMINISTIC
BEGIN
DECLARE avg INT;
SET avg = (n1+n2+n3*2+n4*4)/8;
RETURN avg;
END|
试过了这个例子这工作
DELIMITER |
下一个语句了:
Error
SQL query:
CREATE FUNCTION WEIGHTED_AVERAGE(
n1 INT,
n2 INT,
n3 INT,
n4 INT
) RETURNS INT DETERMINISTIC BEGIN DECLARE avg INT;
MySQL said: Documentation
#1064 - 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
答
因为它在链接中提到:
As mentioned in the first stored procedures tutorial, we declare the "|" symbol as a delimiter, so that our function body can use ordinary ";" characters
你可以写很多不同的连续行的命令。但通常只有当';',洞声明被执行。
设置一个DELIMITER字符意味着MySQL应该等到这个关闭,无论您使用'; ''',然后才解释分隔符之间的内容。
您使用的是哪个MySQL版本?我会说这是phpAdmin的错误,因为这是从命令行客户端 – nos 2010-09-30 13:45:05
hi nos - 你的解决方案工作 - 它从命令行罚款。想添加一个答案? – siliconpi 2010-09-30 14:19:27