mysql函数语法错误

标签 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 控制台中执行以下命令:

设置全局 log_bin_trust_function_creators = 1;

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

    最佳答案

    所以我就这么做了。 https://stackoverflow.com/a/26015334/8821276

    1. 在 MySQL 控制台中执行以下命令:

    设置全局 log_bin_trust_function_creators = 1;

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

    现在可以了,谢谢!

    关于mysql函数语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46896731/

    相关文章:

    Mysql 左连接速度很慢

    c# - 使用 Entity Framework Core 不会将所有数据插入到 MySql 实例中

    php - 如何一次在多个字段中搜索多个单词?

    sql - SQL "IN"语句与使用 "OR"之间是否存在性能差异?

    haskell - 从 Haskell 中的 do block 返回之前是否可以检查某些条件?

    php - 将 mysqli 与 oop php 一起使用

    reactjs - react 按键输入

    c++ - 是否可以创建一个函数来比较从对象 vector 中动态选择的变量?

    python - 就地改变numpy函数输出数组

    c++ - new/delete 和::new/::delete 有什么区别?