首页 > 解决方案 > 根据条件删除/修改一个表中的行 - Oracle DBMS

问题描述

我有一个像这样的表结构

 create table EMPLOYE (
    CodeEmploye varchar2(100) not null,
    NAS varchar2(100),
    CONSTRAINT employe_pk primary key (CodeEmploye)
);

create table SALAIRE (
    CodeEmploye varchar2(100) not null,
    Mois number not null,
    CONSTRAINT salaire_pk primary key (CodeEmploye, Mois),
    CONSTRAINT salaire_code_employe_fk FOREIGN KEY(CodeEmploye) REFERENCES EMPLOYE(CodeEmploye)
);

我想添加一个约束,如果 SALAIRE 表中存在同一个员工,我不应该被允许修改/删除 EMPLOYE 表中的一行。

最好的方法是什么?

标签: sqldatabaseoracleconstraints

解决方案


由于您已经通过“CodeEmployee”列定义了两个表之间的外键关系,所以您想要的已经实现了。

一点扩展是,如果你在 fk 声明之后添加“ON DELETE CASCADE”,一旦你删除雇员表中的任何一行,工资表中的所有相关记录也将被删除。


推荐阅读