首页 > 解决方案 > 创建了一个包含主键列和两个外键列的连接表,而不是拉入数据

问题描述

我创建了一个名为 Expirations 的新表,它有自己的唯一 id,缩进递增,因为它是主键。我还希望该表从其他两个表中提取数据,因此我为 InsuranceId 和 LicenseId 创建了一个列,使这两个列都成为外键以将它们连接到各自表(保险和许可证)中的数据(又名 ID) . 知道为什么我的数据没有自动填写到我的过期表中吗?我相信它是为所有这些列创建的“多对一”。也不确定这是否正确,因为我希望 Expiration 表列出所有保险 ID 和许可证 ID。

有人知道我在这里做错了什么吗?

标签: sqljointable

解决方案


外键并不意味着表格会自动填充。

假设您有一个 person 表、一个 company 表和一个 company_person 表来显示哪个人在哪个公司工作。现在插入三个公司和四个人。这并不意味着 company_person 表中填充了 3 x 4 = 12 条记录(即所有人都在所有公司工作)。那没有任何意义。

外键仅保证您不能将无效数据(即不存在的人或不存在的公司)插入相关表中。您必须自己插入记录。


推荐阅读