表中的主键存在外键关联时,禁止删除表中的记录以及更新主键

解决方案 »

  1.   

    1、在创建外键时,你可以决定删除被参考表的相应值时,引用表数据值处理的三种方式:
    禁止删除。这也是oracle默认的
    对应列赋空,使用on delete set null
    数据一并删除,使用on delete cascade2、建立DDL触发器禁止删除指定名称对象,如对用户test的kkk对象:
    CREATE OR REPLACE TRIGGER tr_drop
      BEFORE drop ON test.schema
    BEGIN
      IF ora_dict_obj_name = 'KKK' THEN
        raise_application_error(-20002, '不能删除');
      END IF;
    END;
    /