gpt4 book ai didi

mysql - 创建 MySQL 函数时出现语法错误

转载 作者:行者123 更新时间:2023-11-29 05:01:36 25 4
gpt4 key购买 nike

我试图在 MySQL 中创建一个函数,但出现语法错误。这是我的功能:

DELIMITER $$
CREATE FUNCTION gg ()
RETURNS char(8)
DETERMINISTIC
BEGIN
DECLARE cod varchar(8);
select RIGHT(MAX(idCurso),7) into cod from Curso;
IF cod is null then
set cod = 'C' + right('0000000' + convert(varchar(7),1),7);
else
set cod = 'C' + right('0000000' + convert(varchar(7), @id +1),7)
return cod;
END$$
DELIMITER ;

我在 if cod is null then 之后的 set cod 中收到此错误:

"cod" is not valid at this position, expecting an identifier

我做错了什么?

最佳答案

你的函数有很多问题。

  • + 图标在 MySQL 中不执行连接,它用于求和。使用 CONCATCONCAT_WS同样。
  • CONVERT 的不当使用。请参阅文档 CONVERT
  • 使用LPAD0 填充到整数值的左侧,并使其长度为 7
  • 删除了 @a,不知道您从哪里访问它,将其替换为 cod 值并向其加 1。
  • 遗漏了 END IF 子句。
DELIMITER $$
CREATE FUNCTION gg () RETURNS CHAR(8) DETERMINISTIC
BEGIN
DECLARE cod VARCHAR(8);
SELECT
RIGHT(MAX(idCurso),7) INTO cod
FROM Curso;

IF cod IS NULL THEN
SET cod = CONCAT('C', LPAD(1, 7, '0'));
ELSE
SET cod = CONCAT('C', LPAD(cod + 1, 7, '0'));
END IF;
RETURN cod;
END$$
DELIMITER ;

关于mysql - 创建 MySQL 函数时出现语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57874558/

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