#【例11.1】在stusys 数据库的score表创建触发器T_insertScoreRecord,当向score表插入一条记录时,显示“正在插入记录”。
use stusys;
delimiter //
create trigger T_insertScourceRecord before insert
on score for each row
begin
set @str='正在插入记录';
end //
delimiter ;
show triggers;
insert into score
values('196001','1004',91);
select @str;
#【例11.2】 删除触发器T_insertScoreRecord。
drop trigger T_insertScoreRecord;
#【例11.3】 在stusys 数据库的student表创建触发器T_inserStudentRecord,当向student表插入一条记录时,显示插入记录的学生的姓名。
use stusys;
delimiter //
create trigger T_insertStudenRecord after insert
on student for each row
begin
set @str=new.sname;
end //
delimiter ;
insert into student
values('196007','刘莉','女','1999-01-14','通信',50);
select @str;
#【例11.4】在stusys数据库的course表创建一个触发器T_updateCourseScore,当更新表course中某门课程的课程号时,同时更新score表中所有相应的课程号。
use stusys;
select * from course a,score b
where a.cno=b.cno;
delimiter //
create trigger T_updateCourseScore after update
on course for each row
begin
update score set cno=new.cno where cno=old.cno;
end //
delimiter ;
set sql_safe_upates=0;
update course set cno='111' where cno='1004';
#【例11.5】 在stusys 数据库的student表创建一个触发器T_deleteStudentScore,当删除表student中某个学生的记录时,同时将score表中与该学生有关的数据全部删除。
use stusys;
select * from student;
delimiter //
create trigger T_deleteStudentScore before delete
on student for each row
begin
delete from score where sno=old.sno;
end //
delimiter ;
delete from student where sno='191001';
select * from student;
#【例11.6】创建现在立即执行的事件E_direct,执行时创建一个表tb。
use stusys;
show triggers;
delimiter //
create event E_direct
on schedule at now()
do
create table tb(timeline timestamp);
delimiter ;
show events;
show tables;
#【例11.7】创建事件E_insertTb,每2秒钟插入一条记录到表tb。
delimiter //
create event E_insertTb
on schedule every 2 second
do
insert into tb
values(current_timestamp);
delimiter ;
select * from new_table;
#【例11.8】创建事件E_startDays,从第2天起,每天清空表tb,在2021年12月31日结束。
#【例11.9】将事件E_startDays更名为E_firstDays。
#【例11.10】删除事件E_firstDays。
#【例10.14】创建一个存储函数F_courseName,由课程号查课程名。
use stusys;
#select * from course
#where cno='1004';
set global log_bin_trust_function_creators=1;
delimiter //
create function F_courseName(v_cno char(10))
returns char(10)
deterministic
begin
return (select cname from course where cno=v_cno);
end //
delimiter ;
#【例10.15】调用存储函数F_courseName。
#【例10.16】删除存储函数F_courseName。