创建函数抛出 SQL 错误 (1064) (42000)

CREATE FUNCTION throws SQL Error (1064) (42000)

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

复制了我试图创建的函数
DELIMITER //

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

//

DELIMITER ;

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

SQL Error [1064] [42000]: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3

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

The solution is to specify a distinct delimiter for the duration of the process, using the DELIMITER command

我想您可能忘记了 select 您希望将此例程存储到的数据库。

所以尝试添加一个 use 作为第一行

use `test`;

DELIMITER //

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

DELIMITER ;

事实证明,我用来发出命令的客户端 DBeaver 导致了问题。 切换到 MySqlWorkbench 后,一切都按预期工作。

显然,DBeaver 没有正确识别定界符..