触发器的创建
2016-02-28 11:39
239 查看
我们小组做的项目和订单有关,当用户下过订单后我们想为这个订单产生一个具有实际意义的订单号,比如cdn2009091100001代表2009-09-11日的第一笔订单。
所以我就为订单表写了一个产生订单号的触发器。
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,也就是新插入的列
注意:开始一个同事说在插入一列后再产生订单号,所以我一直朝这个方向努力,但是一直报错,后来查下才知道插入后不能做修改动作。所以就该到插入前产生订单号。
所以我就为订单表写了一个产生订单号的触发器。
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,也就是新插入的列
注意:开始一个同事说在插入一列后再产生订单号,所以我一直朝这个方向努力,但是一直报错,后来查下才知道插入后不能做修改动作。所以就该到插入前产生订单号。
相关文章推荐
- 使用注解做添加删除修改
- 对ibatis封装
- 2.11 Android Studio的常用快捷键
- 005_Http之request获取客户端信息08-编码之request编码-url编码
- The 11th Zhejiang Provincial Collegiate Programming Contest->Problem A:A - Pokemon Master
- java多线程编程总结
- 很久没有来更新了
- API Guides(五)——<Activity> To Dialogs
- mysql存储过程--返回两个时间的最大最小值
- 求两个时间段间的工作日(周一到周五)
- 软件测试基础
- 帮一个初学者朋友写的矩阵加法
- Ibatis N:1避免N+1查询的方法
- ibatis基础开发
- 禁用select,使select失去作用
- oracle添加列
- Eclipse下配置heritrix
- 文件夹拷贝
- MySQL的存储过程例子
- iOS 微信三方登陆