-- Created by util.you.com@gmail.com
delimiter$$CREATETRIGGER`order_ticket_status_trigger`AFTERUPDATEON`CXY_TS_ORDER_TICKET`FOREACHROWBEGINDECLAREs1INT(11);-- 声明变量,用于存入 CXY_TS_ORDER_TICKET 表的 get_status 字段值,id 字段值
DECLAREs2INT(11);sets2=new.id;-- 分别给 s1 和 s2 赋值
sets1=new.get_status;IF((old.get_status!=new.get_status)OR(old.get_statusISNULL&&new.get_statusISNOTNULL))THENINSERTINTO`CXY_TS_ORDER_TICKET_STATUS`(`order_ticket_id`,`STATUS`,`insert_date_time`)VALUES(s2,s1,DATE_FORMAT(now(),'%Y-%m-%d %H:%i:%s'));ENDIF;END$$
解释
在 mysql 中,new、old都是内置的,分别表示一个字段发生变化前、后的值(当然也包括插入操作前后的变化),此处呢,因为我们需要根据 CXY_TS_ORDER_TICKET表的 get_status字段来插入记录到 CXY_TS_ORDER_TICKET_STATUS 表,因此呢,new 和 old 都取该字段即可。