有两张表,a和b,A表中记录工程中涉及到厂家,B表中涉及厂家负责的工段,要求当某工程被删除时,该工程涉及到厂家信息也被删除
A中pronum(工程编号)、dwbm(单位编码)
b中pronum(工程编号)、dwbm(单位编码)、bd(施工标段)

解决方案 »

  1.   

    直接删除就是了,并未涉及到厂家信息,只有dwbm(单位编码)啊 
      

  2.   

    如果你的C 表存厂家信息,包括dwbm(单位编码)、DWMC(单位名称)、等信息,无B 表
    可为A表建触发器:
    CREATE OR REPLACE TRIGGER C_DeleteDW AFTER DELETE
    ON C
    FOR EACH ROW
    DECLARE
    BEGIN
      IF (select count(*) from A where dwbm = :old.dwbm ) = 0 THEN  --没有其它工程涉及到该厂家
        detele C 
         where dwbm = :old.dwbm ;
      END IF;
    END C_DeleteDW;
      

  3.   

    不好意思,我的问题没有描述清楚,有点字段没有写出来,a表中只保存工程中涉及到厂家,b表中保存各标段信息,
    A中pronum(工程编号)、dwbm(单位编码)…………
    b中pronum(工程编号)、dwbm(单位编码)、bd(施工标段)外还有其他详细情况(如中标金额,工期等)
    当工程中某厂家被取消资格时,他所负责的各标段信息也被删除一个厂家可以在多个工程中出现,一个工程中一个厂家可以负责多个标段