sql - 不匹配,检查了很多次
问题描述
谷歌搜索了很多错误,但我似乎无法找到解决方案。这些是我的代码
create table valuation (
propertyNum VARCHAR2(255),
dateInspected DATE,
rent VARCHAR2(255),
deposit VARCHAR2(255),
PRIMARY KEY (propertyNum, dateInspected),
FOREIGN KEY (propertyNum) REFERENCES property,
FOREIGN KEY (dateInspected) REFERENCES inspection
);
create table inspection (
propertyNum VARCHAR2(255),
dateInspected DATE,
staffNum VARCHAR2(255),
comments CHAR(255),
PRIMARY KEY (propertyNum, dateInspected),
FOREIGN KEY (propertyNum) REFERENCES property,
FOREIGN KEY (staffNum) REFERENCES staff
);
错误似乎在这部分:
FOREIGN KEY (dateInspected) REFERENCES inspection);
因为我已经尝试删除这部分并且它工作正常。
错误信息:
ORA-02256: 引用列的数量必须与引用的列匹配
解决方案
这不起作用,因为您试图从“评估”表中定义的外键仅基于一列(“dateInspected”),而父/主表的主键(“检查”)确实没有单列主(或唯一)键。它有一个两列(在“propertyNum”和“dateInspected”列上)
创建外键的要求是主/父表具有匹配的主键或匹配的唯一约束。
你可能想要的是这样的:
FOREIGN KEY (propertyNum, dateInspected) REFERENCES inspection
推荐阅读
- python - 根据值过滤字典数组
- python - 如何在Python中将SQL查询结果划分和迭代成块,如果我有数百万条记录,它会减少执行时间吗?
- excel - 每隔一列中的值总和
- java - java - 如何在java中暂停我的线程游戏,使用按键输入的切换方法?
- linux - arm-linux-gcc:未定义的错误引用
- java - 在其他方法中替换数组中的位置
- json - 为什么我不能在 Swift 中解码我的 JSON 文件?
- r - 分裂小提琴分裂ggplot2
- python - Visual Studio Code 不适用于大多数模块 ex。(PIL,pygame 等)
- quarkus - MongoDB Panache 为写操作返回 void