sql - 当我插入数据时,它总是说外键不匹配。我找不到原因?
问题描述
CREATE TABLE Student
(
Registration_No INTEGER NOT NULL ,
NIC varchar(25),
Student_Name varchar(255),
Address varchar(255),
Home_Telephone_No varchar(25),
Mobile_Telephone_No varchar(25),
Email varchar(255),
Education varchar(255),
PRIMARY KEY (Registration_No, NIC)
);
CREATE TABLE Payment
(
Registration_No INTEGER NOT NULL,
Registration_fee decimal(15,2),
Annual_subscription decimal(15,2),
FOREIGN KEY(Registration_No)
REFERENCES Student(Registration_No)
);
错误:
外键不匹配 - “付款”引用“学生” 1 :] 1 INSERT INTO Payment(Registration_No,Registration_fee,Annual_subscription )VALUES(10,100.50,500);
外键不匹配 - 引用“学生”的“付款”
解决方案
- 您在表中的主键
Student
不是Registration_No
单独的,而是和的组合Registration_No
NIC
- 现在,当您从其他表中引用它时,您只引用了不是唯一导致错误的组合的一部分,解决方案是将FK与 PK或至少父表的唯一列匹配,以使其按预期工作,在这里阅读更多-> https://stackoverflow.com/a/18435114/8057127
推荐阅读
- google-apps-script - google.script.run.function 不适用于 Chrome V8
- python - 将数据帧的一行与其他数据帧的行进行比较?
- javascript - 如何读取文件夹内的文件夹并从每个文件夹中获取 index.html 并作为列表 (li) 标记中的链接传递
- apache-kafka-streams - Kafka Streams KGroupedTable 恢复
- php - 在加载图像时获取图像选择的完整路径
- angular - Angular 9:即使在分配之后,对象也会在 ngOinit 中得到 udefined
- excel - 如何在Excel中获取第n个非空白列
- javascript - 如何在 JavaScript 中将给定的矩阵顺时针旋转一个元素
- amcharts4 - AmCharts4:数据分组、工具提示文本和变化范围
- firebase - 如何将 LINE 登录集成到 Firebase 身份验证中