我正在尝试在MySQL中创建一个函数,但是遇到语法错误。这是我的功能:
return new Promise(resolve) {
var result = [];
(function next() {
var item = arr.shift();
if (item) {
doSomething(item).then(doSmethingElse).then((x) => {
result.push(x);
next();
});
} else {
resolve(result);
}
})();
});
我在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 ;
之后的set cod
中收到此错误:
“鳕鱼”在此位置无效,需要一个标识符
我在做什么错了?
答案 0 :(得分:3)
您的功能有很多问题。
+
图标在MySQL中不执行串联,它用于求和。使用CONCAT或CONCAT_WS。CONVERT
。请参阅文档CONVERT 0
填充到整数值的左侧,并将其长度设为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 ;