⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 triggerdemo.sql

📁 trigger示范程序
💻 SQL
字号:
create or replace trigger insertemp before insert on works 
for each row 
begin  
insert into employee values (:new.employee_name,'Main',:new.company_name);
end;

create or replace trigger delemp_trig after delete on works
for each row 
begin 
delete from employee
where employee.employee_name = :old.employee_name;
end;


create or replace trigger overdraft_trigger after update on account 
for each row
when(new.balance < 0)
begin
insert into loan values
  (:new.account_number,:new.branch_name,-:new.balance);
insert into borrower values (
  select customer_name,account_number
  from depositor
  where :new.account_number = depositor.account_number);
update account set balance = 0
  where account.account_number = :new.account_number;
end;


/* 删除帐号时检查该帐户的所有者(客户)是否仍有其他帐户,
  若没有则把该客户从关系depositor中删掉*/
create or replace trigger del_Account_trig after delete on account
for each row 
declare 
	num number(3);
	lv_name depositor.customer_name%TYPE;
begin
  SELECT customer_name
  INTO lv_name;
  FROM depositor
  WHERE depositor.account_number = :old.account_number;

  SELECT count(account_number)
  into num
  from depositor
  where depositor.customer_name = lv_name;

  if num=0
  then  delete from depositor;
        where customer_name = lv_name;
  end if;
end;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -