创建函数抛出 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 没有正确识别定界符..
我正在尝试在 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 没有正确识别定界符..