在 MYSQL 函数问题中将 INT 变量声明为 return

Declaring INT variable to return in MYSQL Function problem

我正在尝试构建一个 mysql 函数,它将值插入 table 和 returns 我插入的 last_id,执行后应该是相同的插入。但是 Xampp 在我声明“last_bill_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 ;