今天检查别人写的接口,发现了个小bug,就是我一条push任务,里面有应push数,设置好的‘
还有已push数当推送的数量到达设置的数量时,就不用再下发了,结果接口里面每push一次 只插了log记录,没有把push_task的已发数+1
然后我写了个触发器弥补
mysql> create trigger tgTask
after insert on st_push_task_log
for each row
begin
update st_push_task set task_iscount =task_iscount+1 where task_id=new.task_id;
end;
after insert on st_push_task_log
for each row
begin
update st_push_task set task_iscount =task_iscount+1 where task_id=new.task_id;
end;
删除触发器语法:
Drop trigger triggerName;
显示已有触发器语法:
Show triggers
关于这个问题,我思考了下,如果不是弥补bug,在设计程序的时候,是应该在代码里面写呢(一般都是这么做),还是像这样做个触发器自己去加已下发数?
(创建触发器 每当tasklog表增加一条记录时,对应这条task的task表的已下发数量加1,不用程序再操作一遍st_push_task )
关于触发器,好像一般都是这么认为,节省程序频繁操作表,完整性保证,简单,效率~~
在客户/服务器计算模式下,对减轻网络流量及加快执行速度方面,是一较好的方案~~
具体答案不是很清楚,求高手指点~