gpt4 book ai didi

mysql - 返回表sql的函数

转载 作者:行者123 更新时间:2023-11-29 20:49:00 26 4
gpt4 key购买 nike

我有这个功能:

DROP FUNCTION IF EXISTS MinCarAltezza;
DELIMITER $$
CREATE FUNCTION MinCarAltezza(altezza INT)
RETURNS SchedaTab TABLE(
Nome varchar(64),
Cognome varchar(64),
ID_Scheda int(10),
Sequenza int(2),
nSerie int(2),
nRipetizioni int(2),
Carico_Minimo decimal(4,1),
Esercizio varchar(30),
PRIMARY KEY(Nome,Cognome,Esercizio)
)
AS BEGIN
INSERT SchedaTab
SELECT DISTINCT U.Nome,U.Cognome,P.ID_Scheda,P.Sequenza,P.nSerie,
P.nRipetizioni,MIN(P.Carico),P.Esercizio
FROM utente AS U, scheda AS S, programma AS P
WHERE U.CF=S.ID_Utente AND S.ID_Scheda=P.ID_Scheda AND U.Altezza>altezza
AND P.Carico<>0
AND S.ID_Ist NOT IN(SELECT CF FROM istruttore WHERE Stipendio>500)
GROUP BY U.Nome,U.Cognome,S.ID_Scheda

RETURN
END $$
DELIMITER ;

这在我声明返回类型 TABLE 的第 4 行中给了我一个错误。我有什么遗漏的吗?

如果有人需要的话,这就是数据库:http://pastebin.com/DWYqVBpa

谢谢

最佳答案

在 MySQL 中,没有“表”数据类型,因此出现错误消息。正如 MySQL 文档 stored functions说,返回值可以是

Any valid MySQL data type

因此,存储函数无法返回表。我会将函数更改为存储过程并且

  • 在过程末尾有一个select语句(MySQL返回最后一个select的结果)
  • 或者使用数据创建临时表并在输出参数中返回临时表的名称

关于mysql - 返回表sql的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38208010/

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