MySQL用户定义函数-SQL语法错误

时间:2019-01-26 05:15:09

标签: mysql

我尝试了各种版本,但是在创建这样的用户定义函数时却收到了相同的错误消息

CREATE FUNCTION avg_month(shop INT) RETURNS DECIMAL
BEGIN
DECLARE
    avg_m_sales DECIMAL;
SET
    avg_m_sales = 1000; 
RETURN avg_m_sales;
END;  

错误消息是:

错误 SQL查询:

CREATE FUNCTION avg_month(shop INT) RETURNS DECIMAL
BEGIN
DECLARE
    avg_m_sales DECIMAL

MySQL说:文档

1064 -您的SQL语法有误;检查与您的MariaDB服务器版本相对应的手册以获取正确的语法,以在第4行的''附近使用

1 个答案:

答案 0 :(得分:1)

默认值以外的分隔符;通常在定义函数,存储过程和触发器(其中必须定义多个语句)时使用。

尝试按以下方式创建。 “ testdb”是您的数据库名称。

DELIMITER $$

CREATE

    FUNCTION `testdb`.`avg_month`(shop INT)
    RETURNS DECIMAL

    BEGIN
DECLARE
    avg_m_sales DECIMAL;
SET
    avg_m_sales = 1000; 
RETURN avg_m_sales;
    END$$

DELIMITER ;