有时候在修改某一个字段的值得时候我们需要根据当前字段的不同状态进行不同处理,
比如对于用户表,我们需要记录下来用户被访问的次数,但访问次数的初始值为 null。
如下:
CREATE TABLE `test` (
`id` int(11) NULL DEFAULT NULL ,
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`visit_num` int(11) NULL DEFAULT NULL
)
我们就可以使用如下的 sql 进行判断和修改
UPDATE test set visit_age=if(visit_num is null,1,visit_num+1) where id=1。
mysql 触发器 if语句用法@sqlz ='select asd from flkg'
EXECUTE(@sqlz)
----------
首先,mysql下动态语句不是这样写的,另外,触发器里不能允许返回结果集的.
这里我是希望他能中断更新!
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欢迎分享,转载请注明来源:内存溢出
评论列表(0条)