mysql 使用记录

一、触发器

  1、所有触发器内部不能对本表进行update操作,因为造成循环触发,可以使用存储过程代替触发器。即以下形式错误:

DROP TRIGGER `update_trigger`;

CREATE DEFINER=`root`@`localhost` TRIGGER `update_trigger` BEFORE UPDATE ON `flag_tb`
FOR EACH ROW BEGIN
 

IF OLD.Flag > NEW.Flag THEN
     UPDATE flag_tb SET Flag=Flag+1 WHERE Flag >= NEW.Flag and authFlag < OLD.Flag; 
 END IF;

END;
View Code

  2、阻止删除某条记录时,可使用删除触发器产生错误阻止删除

DROP TRIGGER `delete_trigger`;

CREATE DEFINER=`root`@`localhost` TRIGGER `delete_trigger` BEFORE DELETE ON `flag_tb`
FOR EACH ROW BEGIN  
  IF OLD.Flag  < 2  THEN 
    insert undefind  set name="1";
  END IF;
END;
View Code

 

posted @ 2013-12-16 15:54  SatanRabbit  阅读(148)  评论(0)    收藏  举报