mysql触发器if判断条件问题

mysql触发器if判断条件问题,第1张

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

我的表结构如下:

create table students(id int auto_increment,

name varchar(10) not null DEFAULT '',

age int not null DEFAULT 0,

sex varchar(2) not null DEFAULT '',

studId varchar(18) not null DEFAULT '',

PRIMARY KEY (`id`))

触发器:

DELIMITER $$

CREATE TRIGGER `students_insert` BEFORE INSERT ON `students`

FOR EACH ROW

BEGIN

if mod(substring(new.studId,17,1),2)=0 then

set new.sex = '女'

else

set new.sex = '男'

end if

END

$$

DELIMITER

以上程序已测试通过,

另外友情提醒一下,在触发器中处理这个判断,效率不高,最好在程序中处理这部分逻辑.

case 

when new.status=2 then '我要插入二个好人'

when new.status=3 then '我要插入三个好人'

else  '我要插入好人'

end


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/7241908.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存