代码如下:php语言
var $score//分数变量
if($score<60){
echo "不及格"
}elseif($score<69 &&$score>=60){
echo "及格"
}else if($score>=70 &&$score<80){
echo "中"
}else if($score>=80 &&$score<90){
echo "良"
}else{
echo "优"
}
1,创建触发器:t_afterinsert_on_tab1作用:增加tab1表记录后自动将记录增加到tab2表中createtriggert_afterinsert_on_tab1afterinsertontab1foreachrowbeginifnew.tab1_idisnotnulltheninsertintotab2(tab2_id)values(new.tab1_id)endifend2,创建触发器:t_afterdelete_on_tab1作用:删除tab1表记录后自动将tab2表中对应的记录删去createtriggert_afterdelete_on_tab1afterdeleteontab1foreachrowbegindeletefromtab2wheretab2_id=old.tab1_idend2,创建触发器:t_afterupdate_on_a作用:修改a表age字段后自动将b表中对应的age字段修改createtriggert_afterupdate_on_aafterupdateonaforeachrowupdatebsetage=new.agewhereid=new.id这个应该不会太慢吧,我建议你看一下,你是不是循环做了太多次的插入/更新 *** 作。mysql默认的配置中,每次事务提交都要写binlog和redo log,如果循环太多次——比如循环插入10w条记录——就会非常慢。一般优化思路分两种:
1 修改 sync_binlog为一个100-1000间的值,让binlog每隔100-1000个事务后再写一次;修改innodb_flush_log_at_trx_commit =2; 这么搞的好处是降低了写log的次数和消耗的时间,缺点是,中间出错的话,会丢失一部分的binlog和redolog导致无法通过他们来在出问题是恢复生产库数据。
2 将所有的插入/更新 *** 作放到一个事务中进行。这样,显然就只需要一次写binlong和redolog咯。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)