gpt4 book ai didi

mysql - 这个简单的函数有什么问题吗?

转载 作者:行者123 更新时间:2023-11-29 20:21:50 30 4
gpt4 key购买 nike

这是我出于练习目的而创建的一个简单函数。但收到给定的错误。

DELIMITER $$

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 $$

错误代码:1064。您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在 'n4*4)/8 附近使用的正确语法;平均返回率; END' 在第 6 行

我将其与这篇文章进行比较:

MySQL CREATE FUNCTION Syntax

当我毫无进展时,有经验的人可能会指出我的错误。我不明白错误要求我查看的地方出了什么问题。注意:我正在使用工作台。

最佳答案

你确定你说的不是下面这个,主要是下面的内容吗?

DROP FUNCTION IF EXISTS Weighted_Average;
DELIMITER $$
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 ;

对于某些客户端环境,需要使用DELIMITER来描述 block 的开头和结尾,以及更改语句的行尾。

由于DELIMITER默认为;,开箱即用,我们知道如何用它结束一条sql行,而无需考虑它。直到...

当涉及到诸如CREATE PROCEDUREFUNCTIONEVENTTRIGGER等特殊 block 时,需要是让客户端和服务器知道整个事情在哪里结束的某种协议(protocol)。

因此,对于 MySQL Workbench 等类似客户端,我们使用 DELIMITER block 。我们将其更改为顶部有趣的内容,像往常一样编码,并按照上面所示完成结尾。将 DELIMITER 设置回正常的 ;

PHPMyAdmin 不需要它们。对于 SqlFiddle 来说可能并非如此。

关于mysql - 这个简单的函数有什么问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39475679/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com