﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Rex-随笔分类-mySql</title><link>http://www.blogjava.net/RomulusW/category/48533.html</link><description>——生命不止，奋斗不息。</description><language>zh-cn</language><lastBuildDate>Fri, 24 Nov 2017 07:16:55 GMT</lastBuildDate><pubDate>Fri, 24 Nov 2017 07:16:55 GMT</pubDate><ttl>60</ttl><item><title>mysql 触发器</title><link>http://www.blogjava.net/RomulusW/archive/2017/11/24/432918.html</link><dc:creator>W.R</dc:creator><author>W.R</author><pubDate>Fri, 24 Nov 2017 06:33:00 GMT</pubDate><guid>http://www.blogjava.net/RomulusW/archive/2017/11/24/432918.html</guid><wfw:comment>http://www.blogjava.net/RomulusW/comments/432918.html</wfw:comment><comments>http://www.blogjava.net/RomulusW/archive/2017/11/24/432918.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/RomulusW/comments/commentRss/432918.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/RomulusW/services/trackbacks/432918.html</trackback:ping><description><![CDATA[一、触发器概念

       触发器（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<img src ="http://www.blogjava.net/RomulusW/aggbug/432918.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/RomulusW/" target="_blank">W.R</a> 2017-11-24 14:33 <a href="http://www.blogjava.net/RomulusW/archive/2017/11/24/432918.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>