Rex

——生命不止,奋斗不息。
posts - 27, comments - 8, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

mysql 触发器

Posted on 2017-11-24 14:33 W.R 阅读(240) 评论(0)  编辑  收藏 所属分类: mySql
一、触发器概念 触发器(trigger):监视某种情况,并触发某种操作,它是提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,例如当对一个表进行操作( insert,delete, update)时就会激活它执行。 触发器经常用于加强数据的完整性约束和业务规则等。 触发器创建语法四要素: 1.监视地点(table) 2.监视事件(insert/update/delete) 3.触发时间(after/before) 4.触发事件(insert/update/delete) 触发器基本语法如下所示: DROP TRIGGER if EXISTS 触发器名; CREATE TRIGGER 触发器名 BEFORE INSERT ON 表名 FOR EACH ROW BEGIN sql语句 END 其中: trigger_time是触发器的触发事件,可以为before(在检查约束前触发)或after(在检查约束后触发); trigger_event是触发器的触发事件,包括insert、update和delete,需注意对同一个表相同触发时间的相同触发事件,只能定义一个触发器; 可以使用old和new来引用触发器中发生变化的记录内容。 触发器SQL语法: DROP TRIGGER if EXISTS triggle_insert_enroll_students; CREATE TRIGGER triggle_insert_enroll_students AFTER INSERT ON t_course_enroll_students FOR EACH ROW BEGIN -- update t_course_enroll_students set pid=(select id from t_course_enroll where t_course_enroll.course_name=t_course_enroll_students.course_name) where id=t_course_enroll_students.id; set new.pid=(select id from t_course_enroll where t_course_enroll.course_name=new.course_name); END

只有注册用户登录后才能发表评论。


网站导航: