mysql触发器和事件

 

 

 

 

 

 

 

#【例11.1】在stusys 数据库的score表创建触发器T_insertScoreRecord,当向score表插入一条记录时,显示“正在插入记录”。
use stusys;
select * from score;
delimiter //
create trigger T_insertScoreRecord before insert
 on score for each row
 begin
  set @str='正在插入记录';
  end//
delimiter;

insert into score
  values('191007','4002',90);
  select @str;
  select * from score where sno='191007';
  

#【例11.2】 删除触发器T_insertScoreRecord。
drop trigger T_insertScordRcord;
#【例11.3】 在stusys 数据库的student表创建触发器T_inserStudentRecord,当向student表插入一条记录时,显示插入记录的学生的姓名。
use stusys;
select * from student;
delimiter //
create trigger T_insertStudentRecord after insert
  on student for each row
  begin
      set @str_name=new.sname;
  end//
  delimiter;
show triggers;
insert into student
      values('196007','刘莉',',女','1999-01-14','通信',50);
select @str_name;
#【例11.4】在stusys数据库的course表创建一个触发器T_updateCourseScore,当更新表course中某门课程的课程号时,同时更新score表中所有相应的课程号。
use stusys;
select * from course;
set sql_safe_updates=0;
delimiter //
create trigger T_updateCourseScore before update
on course for each row
begin
update score set cno=new.cno where cno=old.cno;
        end//
delimiter ;
update course set cno='1111' where cno='1004';
select * from course where cno='1111';
select * from score where cno='1111';

#【例11.5】 在stusys 数据库的student表创建一个触发器T_deleteStudentScore,当删除表student中某个学生的记录时,同时将score表中与该学生有关的数据全部删除。
use stusys;
delimiter //
create trigger T_deleteStudentScore after delete
on student for each row
begin
delete from score where sno=old.sno;
        end//
delimiter ;
#【例11.6】创建现在立即执行的事件E_direct,执行时创建一个表tb。

#【例11.7】创建事件E_insertTb,每2秒钟插入一条记录到表tb。
  
#【例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;
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。


#注意:请同学们课外再把上面例题项目在课堂上已经操作的内容独立(不看书)再操作一遍,没有操作的对照课本运行,将过程截图写文案于CSDN。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值