MySQL创建和管理触发器
1.在教务管理系统数据库d_eams的course表中,创建一个插入事件触发器tr_course,添加一条课程信息时,显示提示信息。
delimiter %%
create trigger tr_course after insert
on course for each row
begin
set @tr_i ='操作成功!';
end%%
delimiter ;
insert into course
values('07013', 'UI设计', null, 4, 4, '4');
select @tr_i;
2.在d_eams数据库的student表中创建一个名为tr_update的触发器,该触发器将不允许用户修改表中的记录(本例通过ROLLBACK WORK子句恢复原来数据的方法,来实现记录不被修改)。
delimiter $$
create trigger tr_update after update
on student for each row
begin
set @inf = '你不能做任何更改!';
end$$
delimiter ;
begin work;
update student
set 民族 ='蒙古族'
where 学号='201007003';
rollback work;
select @inf;
select * from student
where 学号 = '201007003';
3.在d_eams数据库的sc表中创建一个名为ct_delete的触发器,该触发器将对sc表中删除记录的操作给出提示信息,并取消当前的删除操作。(本例通过ROLLBACK WORK子句恢复原来数据的方法,来实现记录不被删除)。
delimiter $$
create trigger ct_delete before delete
on sc for each row
begin
set @info1='你无权删除此记录!';
end$$
delimiter ;
begin work;
delete from sc
where 学号 = '201007001';
rollback work;
select @info1;
select * from sc
where 学号 = '201007001';
4.查看ct_delete触发器。
show create trigger ct_delete;
5.删除ct_delete触发器。
drop trigger ct_delete;