文法:
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,'%');
if bh_id ='' or bh_id is null THEN
set new_bh = concat(dt, '01');
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;