触发器的创建

我们小组做的项目和订单有关,当用户下过订单后我们想为这个订单产生一个具有实际意义的订单号,比如cdn2009091100001代表2009-09-11日的第一笔订单。

所以我就为订单表写了一个产生订单号的触发器。

drop trigger t_createordercode_cdn_order_bi;
delimiter //
create trigger t_createordercode_cdn_order_bi BEFORE INSERT ON cdn_order
FOR EACH ROW
BEGIN
set @ordernum = 0;
select count(*) into @ordernum from cdn_order where DATE(ordertime) = current_date;
set @ordernumtemp = CONCAT("0000", @ordernum);
set @ordernumtemp = RIGHT(@ordernumtemp, 5);
set @ordercode = CONCAT("cdn", REPLACE(DATE(current_date),'-',''), @ordernumtemp);
set new.ordercode = @ordercode;
END
delimiter ;


t_createordercode_cdn_order_bi 触发器名字:t表示触发器,createordercode表示这个触发器的作用,cdn_order表示表名,bi表示before insert

on cdn_order:对与cdn_order表
for each_row:对每一列都发生作用

begin和end之间:定义一个变量ordernum,把cdn_order表中当天的订单数赋值给ordernum;然后把ordernum格式化为五位的字符串;链接'cdn',当前时间'20090911',ordernumtemp;把生产的字符串赋值给new.ordercode,也就是新插入的列


注意:开始一个同事说在插入一列后再产生订单号,所以我一直朝这个方向努力,但是一直报错,后来查下才知道插入后不能做修改动作。所以就该到插入前产生订单号。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值