mysql 存储过程、触发器、视图、事件

使用方式如下

使用的测试表如图

teacher表

 student表

 示例

-- 存储过程
delimiter //
create procedure db1.s()
begin
    select * from db1.student;
end //
delimiter ;
use db1;
-- 调用存储过程
call db1.s();

-- 触发器
delimiter //
-- before insert on 在xx表插入之前 for each row 插入的每一条都执行
create trigger c1 before insert on student for each row
    begin
   set new.stid=2,new.addr='天津';
    end //
delimiter ;
insert into student set name='救死扶伤';
drop trigger c1;
delimiter //
-- 触发器对同一个表进行插入修改删除时 不能在这个表进行其他操作 类似于锁机制
create trigger c2 after delete on student for each row
    begin
        insert into teacher set name=old.name;
    end //
delimiter ;
drop trigger c2;
delete from student where sid=2;
select * from teacher;
-- 事件
delimiter //
-- 设定事件创建十分钟后执行删除操作 执行过一次后会销毁
create event e1 on schedule at current_timestamp + interval 10 minute
    do
    begin
        delete from teacher where name= '逆天而行';
        select * from student;
    end //
delimiter ;
alter event e1 rename  to e3;
-- 此事件十分钟后执行 以后每三分钟执行一次 此事件会一直存在
delimiter //
create event e2 on schedule every 3 minute starts current_timestamp + interval 10 minute
    do
    begin
        insert into teacher set name='陈卸甲啊';
        insert into teacher set name='是卸甲啊';
    end //
delimiter ;
-- 删除事件
drop event e2;
-- 禁用事件 但不销毁
alter event e2 disable;
-- 开启事件
alter event e2 enable;
-- 视图 修改视图中的数据会影响到基表 修改基表也会影响到视图
delimiter //
create view v1 as select * from teacher;
delimiter ;
update v1 set name='陈卸甲' where tid=1;
select v1.tid, name from v1;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值