如何执行用户定义的函数以便数据库识别该函数已创建?
DELIMITER $$
CREATE FUNCTION `StudentGPA` (StudentID int, ClassStartDateStart datetime, ClassStartDateEnd date time) RETURNS decimal(3,2)
BEGIN
Declare AvgGPA decimal(3,2);
SELECT AvgGPA= isNULL(Avg(GPA), 0.0)
FROM Students_Classes
WHERE StudentID = StudentID
AND StartDate > ClassStartDateStart
AND StartDate <= ClassStartDateEnd
AND GPA > 0; RETURN AvgGPA;
END
最佳答案
运行代码时,您应该会收到语法错误。在指定参数的 CREATE
语句中,您需要将 ClassStartDateEnd 日期时间
更改为 ClassStartDateEnd 日期时间
。
DELIMITER $$
CREATE FUNCTION `StudentGPA`
(StudentID int,
ClassStartDateStart datetime,
ClassStartDateEnd datetime)
RETURNS decimal(3,2)
BEGIN
Declare AvgGPA decimal(3,2);
SELECT AvgGPA= isNULL(Avg(GPA), 0.0)
FROM Students_Classes
WHERE StudentID = StudentID
AND StartDate > ClassStartDateStart
AND StartDate <= ClassStartDateEnd
AND GPA > 0; RETURN AvgGPA;
END$$
DELIMITER ;
我还在 END
语句后使用了 $$
的 DELIMITER 来正确终止 CREATE
,然后将分隔符设置回 ;
这是很好的做法。
关于mysql - 用户定义函数 MySQL Workbench,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23621043/