create trigger cascadeDeletesDepotBus
before delete on Depot
for each row
begin
delete from Bus--这个语句是指删除Bus表内的数据把?
where bus.dNo=:old.dNo;--这个:old是什么意思呢?
end;
================================================================================
create trigger cascadeUpdatesDepotBus
after update of dNo on Depot
for each row
begin
update Bus
set Bus.dNo = :new.dNo
where Bus.dNo = :old.dNo;--这里这句话是什么意思阿?
end;

解决方案 »

  1.   

    create trigger cascadeDeletesDepotBus 
    before delete on Depot 
    for each row 
    begin 
    delete from Bus--这个语句是指删除Bus表内的数据把? 
    iihero>>: 是
    where bus.dNo=:old.dNo;--这个:old是什么意思呢? 
    iihero>>: 是指Depot表中当前正要触发删除的那一记录行
    end; 
    ================================================================================ 
    create trigger cascadeUpdatesDepotBus 
    after update of dNo on Depot 
    for each row 
    begin 
    update Bus 
    set Bus.dNo = :new.dNo 
    where Bus.dNo = :old.dNo;--这里这句话是什么意思阿? 
    iihero>>:当Depot表中更新一行时,更新前的dNo值为旧的dNo值,更新后的dNo值为新的dNo值
             触发时,会对Bus表中,将对应的旧的dNo值更新为新的dNo值。说白了,就是级联更新
    end; 
      

  2.   

    :old是指当前要删除的记录。update Bus 
    set Bus.dNo = :new.dNo 
    where Bus.dNo = :old.dNo
    的意思是更新表Bus的dno为当前要修改的记录的新的dno,并且dno=当前要修改的记录的修改前的dno
      

  3.   

    delete from Bus--这个语句是指删除Bus表内的数据把? 
    where bus.dNo=:old.dNo;--这个:old是什么意思呢? 这是一个SQL,删除Bus表内dNo为:old.dNo的记录, 其中:old代表Depot表中被触发的记录(即要被删除记录),即如果Depot表删除了某个或某些dNo的记录,那么也将同步删除bus表中相应dNo的记录。update Bus set Bus.dNo = :new.dNo where Bus.dNo = :old.dNo;--这里这句话是什么意思阿? 这个就是在Depot表的字段被更新的时候,把bus表中相同dNo的记录更新为新的值,即保持Depot和Bus表同步。