mysql实例命在哪里填写_mysql 程序编写实例

DELIMITER $$

drop trigger if exists `updata_depart_lead_name`;

-- 新建触发器 --

-- 功能:在更新部门的领导编号是,自动填写部门领导名字 --

create trigger `updata_depart_lead_name` before update on `department`

for each row BEGIN

set @lead_name = '';

if new.lead_id is null or new.lead_id = '' then

set @lead_name = null;

ELSE

select name into @lead_name from staff where id = new.lead_id;

end IF;

set new.lead_name = @lead_name;

END

$$

————————————————————————————————————————————————————————————————————————————————

delimiter $$

drop trigger if exists `insert_depart_lead_name`;

-- 新建触发器 --

-- 功能:在新增部门时,自动填写部门领导的名字 --

create trigger `insert_depart_lead_name` BEFORE insert on `department`

for each row BEGIN

set @lead_name = '';

if new.lead_id is null or new.lead_id = '' THEN

set @lead_name = null;

ELSE

select name into @lead_name from staff where id = new.lead_id;

end if;

set new.lead_name = @lead_name;

end

$$

—————————————————————————————————————————————————————————————————————————————————————

delimiter $$

drop trigger if EXISTS `remove_depart_lead_on_delete_staff`;

-- 在删除staff时,清空department中领导为该staff的领导信息 --

create trigger `remove_depart_lead_on_delete_staff` after DELETE on `staff`

for each row BEGIN

update department set lead_id = null, lead_name = null where lead_id = old.id;

end

$$

————————————————————————————————————————————————————————————————————————————————————————

delimiter $$

drop trigger if exists `trigger_cursor`;

create trigger `trigger_cursor` after insert on `staff`

for each row BEGIN

declare staff_id int ;

DECLARE done int default false;

DECLARE cur_test CURSOR FOR

select id from staff ;

declare CONTINUE HANDLER FOR not FOUND set done = true;

open cur_test;

read_loop:LOOP

fetch cur_test into staff_id;

if done then

LEAVE read_loop;

ELSE

insert into message values(null, '1');

end if;

end loop;

END

$$

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值