1

我正在尝试在 MariaDB 数据库中创建一个存储函数。我从MariaDB Docs复制了我试图创建的函数:

DELIMITER //

CREATE FUNCTION FortyTwo() RETURNS TINYINT DETERMINISTIC
BEGIN
  DECLARE x TINYINT;
  SET x = 42;
  RETURN x;
END 

//

DELIMITER ;

不幸的是,我收到以下错误:

SQL 错误 [1064] [42000]:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 3 行的 '' 附近使用正确的语法

最让我困惑的是,给定的代码应该可以解决我根据 MariaDB 文档得到的错误代码

解决方案是使用 DELIMITER 命令为进程的持续时间指定一个不同的分隔符

4

2 回答 2

1

事实证明,我用来发出命令的客户端 DBeaver 造成了麻烦。切换到 MySqlWorkbench 后,一切都按预期工作。

显然,DBeaver 没有正确识别分隔符..

于 2021-02-26T09:51:29.227 回答
0

我认为您可能忘记选择要存储此例程的数据库。

所以尝试添加 ause作为第一行

use `test`;

DELIMITER //

CREATE FUNCTION FortyTwo() RETURNS TINYINT DETERMINISTIC
BEGIN
  DECLARE x TINYINT;
  SET x = 42;
  RETURN x;
END
//

DELIMITER ;
于 2021-02-18T15:31:41.197 回答