mysql 触发器介绍

create trigger triggerName 
 after/before insert/update/delete on tableName
 for each row   --这句话在mysql是固定的 
 begin 
    sql语句; 
 end;

如下在插入之前自动生成座位号

DROP TRIGGER IF EXISTS `pxlb_zwh_insert`; 
CREATE TRIGGER `pxlb_zwh_insert`   
BEFORE INSERT ON `dj_pxlb`           
FOR EACH ROW
begin
IF new.zwh IS NULL OR new.zwh < 1 THEN
     SET new.zwh = (select IFNULL(max(t1.zwh),0)+1 from `dj_pxlb` as t1 where t1.ccbh=new.ccbh);
END IF;
end;

DROP TRIGGER IF EXISTS t_make_data; 
CREATE TRIGGER t_make_data 
BEFORE INSERT ON t_tab1 
FOR EACH ROW
BEGIN  
DECLARE number_rand BIGINT(20) DEFAULT 4000 ;    --声明变量
SET number_rand = (SELECT CAST(RAND()*300+300 AS signed) AS rand);
SET new.number_rand = number_rand;
END;

上一篇:MySQL关联查询总结


下一篇:ie8下修改input的type属性报错