加入收藏 | 设为首页 | 会员中心 | 我要投稿 草根网 (https://www.1asp.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

MYSQL触发器

发布时间:2022-11-25 13:02:22 所属栏目:教程 来源:
导读:  触发器是一种与表操作有关的数据库对象,当触发器所在表上出现指定事件时,将调用该对象,即表的操作事件触发表上的触发器的执行。

  所有触发器都保存在information_schema.trigger表中。

  创建触
  触发器是一种与表操作有关的数据库对象,当触发器所在表上出现指定事件时,将调用该对象,即表的操作事件触发表上的触发器的执行。
 
  所有触发器都保存在information_schema.trigger表中。
 
  创建触发器
 
  格式:
 
  create trigger 触发器名字
 
  before/after
 
  insert/update/delete/load data/replace ON 建立触发器的表
 
  FOR EACH ROW
 
  触发器程序体
 
  例子
 
  假设系统中有两个表:
 
  班级表 class(班级号 classID, 班内学生数 stu_num)
 
  学生表 student(学号 stuID, 所属班级号 classID)
 
  要创建触发器来使班级表中的班内学生数随着学生的添加自动更新
 
  DELIMITER $
 
  create trigger tri_stu_Insert after insert
 
  on student for each row
 
  begin
 
  declare c int;
 
  set num = (select stu_num from class where classID=new.classID);
 
  update class set stu_num = num + 1 where classID = new.classID;
 
  end$
 
  DELIMITER ;
 
  new与old关键字解析
 
  在 INSERT 型触发器中,NEW 用来表示将要(BEFORE)或已经(AFTER)插入的新数据;
 
  在 UPDATE 型触发器中mysql触发器,OLD 用来表示将要或已经被修改的原数据,NEW 用来表示将要或已经修改为的新数据;
 
  在 DELETE 型触发器中,OLD 用来表示将要或已经被删除的原数据;
 
  show trigger [from DBname] 查看触发器
 
  drop trigger [if exists][DBname.] trigger_name删除触发器
 

(编辑:草根网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章