尝试编译函数时出现语法错误

时间:2016-08-02 05:03:57

标签: mysql function stored-functions

我正在尝试编译以下函数但是会出现很多语法错误。我犯了什么错误?我错过了什么吗?我们可以在返回类型中给出字符长度吗?

create function generate_invoice_number(id int) returns varchar(11)
    deterministic 
begin
    declare invoiceId varchar(11) default null;
    /**
         * Here id refers to the ID that is generated in the 
     * invoice table.
     */
    if id is not null and id > 0 
        then
            set invoiceId = concat('QUA-',lpad(id,7,'0'));
    end if;

    return invoiceId;
end;

错误:

  

错误代码:1064您的SQL语法出错;检查   手册,对应右边的MySQL服务器版本   在''第4行(0 ms)

附近使用的语法      

错误代码:1064您的SQL语法出错;检查   手册,对应右边的MySQL服务器版本   要在'if id不为null且id>附近使用的语法0然后                 设置invoiceId = concat('QUA - ',lpad(id,7,'在第5行(0 ms)

     

错误代码:1064您的SQL语法出错;检查   手册,对应右边的MySQL服务器版本   在第1行'0 if'附近使用的语法(0 ms)

     

错误代码:1064您的SQL语法出错;检查   手册,对应右边的MySQL服务器版本   在第1行'返回invoiceId'附近使用的语法(0 ms)

     

错误代码:1064您的SQL语法出错;检查   手册,对应右边的MySQL服务器版本   在第1行'结束'附近使用的语法(0 ms)

1 个答案:

答案 0 :(得分:1)

您必须为此定义// Socket.io server listens to our app module.exports = function(io) { // Send current time to all connected clients function sendTime() { io.emit('time', { time: new Date().toJSON() }); } // Send current time every 10 secs setInterval(sendTime, 10000); }

delimiter