订单场景:当bool_t=0则未下单,就不需要订单号,bool_t=1时,表示下单,则有订单号
第一步:我们随便创建一个临时表dd(瞎写的)我们不管
下面字段有说明(comment)
#测试表
CREATE TABLE dd(
ord_num VARCHAR(15) COMMENT "订单号长度15位",
bool_t INT COMMENT "用于判断是否为1",
c1 VARCHAR(30) COMMENT "随意字段"
);
第二步:创建触发器
#创建触发器
DELIMITER //
CREATE TRIGGER t_l
BEFORE INSERT ON dd
FOR EACH ROW
BEGIN
#用于计数 @n
SELECT COUNT(*) into @n from dd where LENGTH(ord_num) >0;
IF new.bool_t=1
THEN SET new.ord_num=DATE_FORMAT(CURRENT_DATE,"%Y%m%d")*10000000+@n+1;
END IF;
END//
DELIMITER ;
=========================================================================
OK以上我们的任务结束了:
下面用于测试:
#测试语句
INSERT INTO dd(bool_t,c1) VALUES (0,"aaa");
INSERT INTO dd(bool_t,c1) VALUES (1,"bbb");
INSERT INTO dd(bool_t,c1) VALUES (1,"ccc");
INSERT INTO dd(bool_t,c1) VALUES (0,"ddd");
INSERT INTO dd(bool_t,c1) VALUES (1,"fff");
=========================================================================
先传入0则id显示空,在写入1显示当前时间**10000000+1依次类推(我们只添加bool_t等于1 的值)
ok结束===>哥们自行根据具体需求更改(有问题的偷偷找我说一下,要不然我多没得面子啊)