MySQL触发器中通过SELECT语句给局部变量赋值

一条赋值变量引发的巨坑,自己备注一下,浪费了不少时间

这边关键字,我都用了大写,方便观看

CREATE  TRIGGER  num_in  AFTER  INSERT  ON user_t
FOR   EACH   ROW  BEGIN
//变量的声明

DECLARE num INT(11);

//赋值

SET  num = (SELECT  COUNT(id)  FROM user_t);
UPDATE  count_table SET count_num=num,update_time=SYSDATE()  WHERE table_name="user_t";

END



//删除的实例

CREATE  TRIGGER  account_delete_info  AFTER  DELETE  ON sys_account_info
FOR   EACH   ROW  BEGIN

DECLARE deleteid INT(11);
//保险起见
SET  deleteid =0;
//直接获取不到,得先存一下  这是个小坑
SET  deleteid = OLD.id;
//保险起见 ,确保在获得值的时候删除
IF deleteid!=0 THEN
DELETE from sys_user_info  where sys_user_info.account_id=deleteid;
end if ;

END





//删除触发器

drop TRIGGER account_delete_info;

你可能感兴趣的:(mysql)