在MYSQL函数问题中声明要返回的INT变量

在MYSQL函数问题中声明要返回的INT变量,mysql,function,variables,insert,Mysql,Function,Variables,Insert,我正在尝试构建一个mysql函数,该函数将值插入到表中,并返回插入的最后一个_id,在执行插入后应该是相同的。但是Xampp在我声明“last\u bill\u id”变量的行中给了我一个错误。有人能帮我理解我做错了什么吗 以下是该函数的代码: CREATE FUNCTION insert_bill( client_id varchar (12), bill_date date ) RETURNS INT BEGIN DECLAR

我正在尝试构建一个mysql函数,该函数将值插入到表中,并返回插入的最后一个_id,在执行插入后应该是相同的。但是Xampp在我声明“last\u bill\u id”变量的行中给了我一个错误。有人能帮我理解我做错了什么吗

以下是该函数的代码:

CREATE FUNCTION insert_bill(

        client_id varchar (12),
        bill_date date
    ) RETURNS INT
    BEGIN
        DECLARE last_bill INT; 
        INSERT INTO bill
        (
            client_id, bill_date
        )
         VALUES
        (
            client_id, bill_date
        );    
        SET last_bill = LAST_INSERT_ID();
        RETURN last_bill;  
    END $$
    DELIMITER ;

错误:#1064-INT有点不对劲。开始时需要另一个分隔符

DELiMiTER $$
CREATE FUNCTION insert_bill(

    client_id varchar (12),
    bill_date date
) RETURNS INT
DETERMINISTiC
BEGIN
    DECLARE last_bill INT; 
    INSERT INTO bill
    (
        client_id, bill_date
    )
     VALUES
    (
        client_id, bill_date
    );    
    SET last_bill := LAST_INSERT_ID();
    RETURN last_bill;  
END $$
DELIMITER ;

非常感谢,函数被创建了,但是当我执行以下操作时:选择insert_bill('111111111',STR_TO_DATE('18-03-2020','%d-%m-%Y');它给了我相同的错误我删除了“DETERMINISTIC”(确定性)并且它工作了,对于我的查询:选择insert_bill2('111111111',STR TO_TO_DATE('14-03-2020','%d-%m-%Y'))