【例11.5】 在stusys 数据库的student表创建一个触发器T_deleteStudentScore,当删除表student中某个学生的记录时,同时将score表中与该学生有关的数据全部删除。
use stusys;
select * from student;
select * from score;
delimiter //
create trigger T_deleteStudentScore after delete
on student for each row
begin
delete from score where sno=old.sno;
end //
delimiter ;
delete from student where sno='191001';
select * from score where sno='191001';
【例11.6】创建现在立即执行的事件E_direct,执行时创建一个表tb。
show triggers;
use stusys;
delimiter //
create event E_direct
on schedule at now()
do
begin
create table new_table(timeline timestamp);
end //
delimiter ;
show tables;
【例11.7】创建事件E_insertTb,每2秒钟插入一条记录到表tb。
select * from new_table;
delimiter //
create event E_insertTb
on schedule every 2 second
do
begin
insert into new_table
values(current_timestamp());
end //
delimiter ;
【例11.8】创建事件E_startDays,从第2天起,每天清空表tb,在2021年12月31日结束。
【例11.9】将事件E_startDays更名为E_firstDays。
alter event E_startDays
rename to E_firstDays;
【例11.10】删除事件E_firstDays。
drop event E_firstDays;
【例10.14】创建一个存储函数F_courseName,由课程号查课程名。
use stusys;
select * from course;
select cname 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。
select F_courseName('4002');
【例10.16】删除存储函数F_courseName。
drop function F_courseName;