现在有两张表 A 报名表   B 消息表
A 表 报名表
ID    Name     
1     小张
2     小明
3     小华B 表 消息表ID    Name     Info
1     小张     已删除
2     小明     已删除
3     小华     已删除现在问题是把A 表先删除掉前 发消息给报名的人说报名名单已删除了!对B表消息 循环添加要怎么写呢?我的思路:先把A表报名表的人名查询出来,然后在添加到B表消息表写入“已删除”信息,然后在把A表所以报名名单删除掉!但是不知道存储过程要怎么写这样子的循环。

解决方案 »

  1.   

    用游标,
    遍历每一行,
     open cur2 for 
          select 字段 
            from 表1 m, 表2 i 
           where m.m1= i.i1
             
        loop 
          fetch cur2 
            into P_PLM_OID, P_PLM_M_OID, P_plm_m_id; 
          exit when cur2%notfound; 
         
         --业务逻辑     
        end loop; 
        close cur2; 
      

  2.   

    create trigger tr_A
    on A
    after delete
    as
    insert into b select id,name,'已删除' from deleted
      

  3.   

    使用触发器。。
    对A的delete 执行 B的update
      

  4.   

    删除A 
    打一个Log到B表
    两次操作放一个transaction里。
    类似:begin try
    begin tran
                    -- operation1
    -- operation2
    commit tran
    end try
    begin catch
    rollback tran
    end catch