首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何修复sql中的"ORA-02270:此列列表没有匹配的唯一键或主键“错误

如何修复sql中的"ORA-02270:此列列表没有匹配的唯一键或主键“错误
EN

Stack Overflow用户
提问于 2019-04-26 22:30:22
回答 1查看 80关注 0票数 3

这个问题发生在飞行台上,

代码语言:javascript
运行
复制
create table LOCATION (  
  airportCode   VARCHAR2(10) not null,  
  country       VARCHAR2(15) not null,  
  address       VARCHAR2(50) not null,  
  PRIMARY KEY(airportCode));

create table ROUTE (  
  routeID           VARCHAR2(10) not null,  
  airportCode       VARCHAR2(10) not null,  
  description       VARCHAR2(100) not null,  
  PRIMARY KEY(routeID, airportCode),
  FOREIGN KEY(airportCode) REFERENCES LOCATION(airportCode));

create table NEACC (  
  memberID          VARCHAR2(20),  
  flightGoldpoints  NUMBER,  
  PRIMARY KEY(memberID));

create table STAFF (  
  staffID           VARCHAR2(20) not null,  
  memberID          VARCHAR2(20) not null,
  name              VARCHAR2(20) not null,
  address           VARCHAR2(50) not null,
  email             VARCHAR2(30) not null,  
  phone             NUMBER not null,
  passportNum       NUMBER not null,
  PRIMARY KEY(staffID),
  FOREIGN KEY(memberID) REFERENCES NEACC(memberID));

create table FLIGHT (   
  flightID          VARCHAR2(20) not null,   
  routeID           VARCHAR2(20) not null,   
  staffID           VARCHAR2(20) not null, 
  captainOrFirstOfficer VARCHAR2(15) CHECK (captainOrFirstOfficer IN ('captain', 'first officer')) not null,
  estDepartDateTime VARCHAR2(20) not null,   
  actDepartDateTime VARCHAR2(20) not null,   
  actArriveDateTime VARCHAR2(20) not null, 
  avgSpeed          NUMBER not null, 
  avgHeight         NUMBER not null, 
  estDuration       NUMBER not null, 
  estFuel           NUMBER not null, 
  PRIMARY KEY(flightID, routeID), 
  FOREIGN KEY(routeID) REFERENCES ROUTE(routeID), 
  FOREIGN KEY(staffID) REFERENCES STAFF(staffID));

我得到的错误是"ORA-02270:此列列表没有匹配的唯一键或主键“。外键和主键在flight表中被正确引用,但我不明白为什么会出现这个错误。

EN

回答 1

Stack Overflow用户

发布于 2019-04-26 22:35:43

Route表中的主键为:

代码语言:javascript
运行
复制
PRIMARY KEY(routeID, airportCode),

正确的外键引用需要按顺序引用这两者。这将是:

代码语言:javascript
运行
复制
FOREIGN KEY(routeID, airportCode) REFERENCES ROUTE(routeID, airportCode), 

但是,FLIGHT没有airportCode,因此这将不起作用。

我不确定您要采取什么方向--从主键中删除airportCode,还是将其添加到Flight表中。但这是你的问题。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55869756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档