SQL如何引用复合主键Oracle?

问题描述

CONSTRAINT fk_column FOREIGN KEY (column1, column2, … column_n) REFERENCES parent_table (column1, column2, … column_n)

在你的情况下

create table Visit_Treat (
TreatCode CHAR(6) constraint cTreatCodeFK references Treatment(TreatCode),
SlotNum NUMBER(2),
DateVisit DATE,
constraint cVisitTreatPK primary key (SlotNum, TreatCode, DateVisit),
constraint fk_slotnumDatevisit FOREIGN KEY(SlotNum,DateVisit) 
references Visit(SlotNum,DateVisit)
);

解决方法

我有两个父表:TreatmentVisit

处理表:

 create table Treatment (
    TreatCode CHAR(6) constraint cTreatCodeNN not null,Name VARCHAR2(20),constraint cTreatCodePK primary key (TreatCode),);

访问表:

create table Visit (
SlotNum NUMBER(2),DateVisit DATE,ActualArrivalTime DATE,constraint cVisitSlotDatePK primary key (SlotNum,DateVisit)
);

现在,我尝试创建一个子表:

create table Visit_Treat (
TreatCode constraint cTreatCodeFK references Treatment(TreatCode),SlotNum constraint cSlotNumFK references Visit(SlotNum),DateVisit constraint cDateFK references Visit(DateVisit),constraint cVisitTreatPK primary key (SlotNum,TreatCode,DateVisit)
);

一切正常,直到第3行。从第三行开始,即SlotNum constraint ...显示一条消息:no matching unique orprimary key

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...