刚才在琢磨要按天生成序列号,一番查证后,变有了此文!
1.首先我们创建一张订单表
sn_day,记录按天生成的序列号; sn_hours,记录按小时生成的序列号; sn_minutes 表示按分生成的序列号;
当然,你可以按自己的需要去定义这个字段名.
CREATE TABLE orders (
sn_day DECIMAL (32) PRIMARY KEY,
sn_hours DECIMAL (32),
sn_minutes DECIMAL (32),
remark VARCHAR (100)
);
2.我们在这订单表新增数据时,自动生成序列号.而不是我们主动去插入这个序列号.那么就需要用到触发器.顾名思义,触发嘛.
那就是,在订单表,新增数据里触发了自动生成序列号.
CREATE TRIGGER sn_by_day BEFORE INSERT ON orders FOR EACH ROW
BEGIN
DECLARE
n INT;
SELECT
IFNULL(max(RIGHT(sn_day, 10)), 0) INTO n
FROM
orders
WHERE
mid(sn_day, 1, 8) = DATE_FORMAT(NOW(), '%Y%m%d');
SET NEW.sn_day = concat(
DATE_FORMAT(NOW(), '%Y%m%d'),
RIGHT (10000000001 + n, 10)
);
END;
create trigger sn_by_day 创建一个触发器,名称叫 sn_by_day
before i