语法中的mysql函数错误

时间:2017-10-23 19:06:09

标签: mysql function syntax

我正在尝试编写一个函数(MariaDB 10.2.9)。

CREATE FUNCTION tesst (host VARCHAR(30)) RETURNS INT(4)
BEGIN
DECLARE hwid INT(4);

SELECT `id` INTO hwid FROM `hardware` WHERE `hostname` = host;

RETURN COALESCE(hwid, 'HWID not found');
END

现在我收到以下错误:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 3 

我不知道错误是什么。

编辑: 它适用于

delimiter //
CREATE FUNCTION tesst (host VARCHAR(30)) RETURNS int(4)
BEGIN
DECLARE hwid INT(4);

SELECT `id` INTO hwid FROM `hardware` WHERE `hostname` = host;

RETURN COALESCE(hwid, 'HWID not found');
END //
delimiter ;

并设置:

  1. 在MySQL控制台中执行以下操作:
  2. SET GLOBAL log_bin_trust_function_creators = 1;

    1. 将以下内容添加到mysql.ini配置文件中:
    2. log_bin_trust_function_creators = 1

1 个答案:

答案 0 :(得分:0)

所以我做到了。 https://stackoverflow.com/a/26015334/8821276

  1. 在MySQL控制台中执行以下操作:
  2. SET GLOBAL log_bin_trust_function_creators = 1;

    1. 将以下内容添加到mysql.ini配置文件中:
    2. log_bin_trust_function_creators = 1

      现在有效,谢谢!