MySQL的触发器

触发器(trigger):监视某种情况,并触发某种操作。

 

触发器创建语法四要素:

1.监视地点(table)

2.监视事件(insert/update/delete)

3.触发时间(after/before)

4.触发事件(insert/update/delete)


语法:
create trigger [triggerName]
after/before insert/update/delete on [tablename]
for each row   #这句话在mysql是固定的
begin
[sql sentences];
end;

 

 

 

假设有两张表`class`,`student`;这两张表中存的都是学生的id和班机的id;如果向student表中插入数据同时数据也更新到class表中;下面分别是表的创建语句和触发器;

CREATE TABLE `class` (
  `classID` int(11) DEFAULT NULL,
  `stuID` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `student` (
  `stuID` int(11) DEFAULT NULL,
  `classID` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TRIGGER `tri_stuInsert` AFTER INSERT ON `student` FOR EACH ROW

begin
  declare s int;
  declare c int;
  set s = (select stuID from student where stuID =new.stuID );
  set c = (select classID from student where stuID =new.stuID );
  insert into class (stuID,classID) values(s,c);
end;

posted @ 2017-07-11 15:19  Histring  阅读(38)  评论(0)    收藏  举报