sql - 根据条件删除/修改一个表中的行 - 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 表中的一行。
最好的方法是什么?
解决方案
由于您已经通过“CodeEmployee”列定义了两个表之间的外键关系,所以您想要的已经实现了。
一点扩展是,如果你在 fk 声明之后添加“ON DELETE CASCADE”,一旦你删除雇员表中的任何一行,工资表中的所有相关记录也将被删除。
推荐阅读
- amazon-web-services - 正在寻找监控 ECS 部署失败通知的好方法?
- .net-core - Azure Devops Release Pipelines 上 Nunit 测试解决方案的 AppSetting
- powershell - Powershell - 需要选择字符串建议
- javascript - 如何在反应中访问多维数组
- google-admin-sdk - 如何检索所有移动设备?
- javascript - 为什么当我将div向下移动到页面时滚动条滚动
- sql - BigQuery 中的字符串操作
- google-apps-script - 在脚本中设置电子邮件地址
- apache-storm - 运行几秒钟后,风暴拓扑在本地集群中关闭
- mysql - excel VBA更新SQL中的现有记录