美文网首页
2020-11-05 触发器实现mysql每日自增字段

2020-11-05 触发器实现mysql每日自增字段

作者: 臭臭猫爱不爱吃鱼 | 来源:发表于2020-11-05 10:03 被阅读0次

    语法:

    delimiter 自定义结束符号
    create trigger 触发器名字 触发时间 触发事件 on 表 for each row
    begin
        -- 触发器内容主体,每行用分号结尾
    end
    自定义的结束符合
    
    delimiter ;
    

    实现一个表biz_leave中ticket_number,每天从YYYYMMDD01开始递增:

    delimiter ##
    DROP TRIGGER IF EXISTS generate_ticket_number ##
    create trigger generate_ticket_number before insert on biz_leave
    for each ROW
    BEGIN
    declare dt char(8);
    declare bh_id char(10);
    declare seq int;
    declare new_bh varchar(10);
    
    set dt= DATE_FORMAT(CURDATE(),'%Y%m%d');
    
    /*获取当天最大序列号*/
    SELECT
        max(ticket_number) into bh_id from biz_leave
    where ticket_number like CONCAT(dt,'%');
    
    /*若当天还未有记录,将序列号初始化为YYYYMMDD + 01*/
    if bh_id ='' or bh_id is null THEN
        set new_bh = concat(dt, '01');
    /*将当天最大序列号加1,作为当前插入行的序列号*/
    ELSE
        set seq = right(bh_id,2) + 1;
        /*确保序列号不超过两位*/
        set new_bh = right(concat('00',seq),2);
        set new_bh = concat(dt, new_bh);
    end if;
    
    update biz_leave set ticket_number = new_bh;
    end##
    delimiter; 
    

    相关文章

      网友评论

          本文标题:2020-11-05 触发器实现mysql每日自增字段

          本文链接:https://www.haomeiwen.com/subject/rzdovktx.html