DROP TABLE if EXISTS tb;
CREATE TABLE tb(BH CHAR(16),content VARCHAR(20),date
DATETIME,val INT);
CREATE TRIGGER tri_NewBH BEFORE INSERT ON tb
FOR EACH ROW
BEGIN
DECLARE dt CHAR(8)
DECLARE bh_id CHAR(16)
DECLARE number INT(1)
DECLARE new_bh VARCHAR(16)
SET dt = DATE_FORMAT(CURDATE(),'%Y%m%d')
SELECT
MAX(BH) INTO bh_id
FROM tb
WHERE BH LIKE CONCAT(dt,'%')
IF bh_id = '' OR bh_id IS NULL THEN
SET new_bh = CONCAT(dt,'00000001')
ELSE
SET number = RIGHT(bh_id,8) + 1
SET new_bh = RIGHT(CONCAT('00000000',number),8)
SET new_bh=CONCAT(dt,new_bh)
END IF
SET NEW.BH = new_bh
END