【发布时间】:2020-01-12 10:24:14
【问题描述】:
我正在尝试在 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”在这个位置无效,需要一个标识符
我做错了什么?
【问题讨论】:
-
分享错误
-
@Mario,你能解释一下你想用这条线实现什么
set cod = 'C' + right('0000000' + convert(varchar(7),1),7); -
上次我检查过,MySQL 不使用
+进行连接;但自从我检查以来已经有一段时间了。此外,看起来CONVERT的参数可能是倒退的......而且你没有END IF确保你使用的是 MySQL 文档,而不是 MSSQL、Oracle 或 sqlite 等。我> -
+ 是 mysql 中的算术运算符,请改用 concat。您没有终止第二个 set 语句,并且您的第一个 set 语句没有意义。
-
@JitendraYadav 我正在尝试使用以下结构创建一个 id:'C000000X' 是 'x' 一个连续的数字。