sql - 创建了一个包含主键列和两个外键列的连接表,而不是拉入数据
问题描述
我创建了一个名为 Expirations 的新表,它有自己的唯一 id,缩进递增,因为它是主键。我还希望该表从其他两个表中提取数据,因此我为 InsuranceId 和 LicenseId 创建了一个列,使这两个列都成为外键以将它们连接到各自表(保险和许可证)中的数据(又名 ID) . 知道为什么我的数据没有自动填写到我的过期表中吗?我相信它是为所有这些列创建的“多对一”。也不确定这是否正确,因为我希望 Expiration 表列出所有保险 ID 和许可证 ID。
有人知道我在这里做错了什么吗?
解决方案
外键并不意味着表格会自动填充。
假设您有一个 person 表、一个 company 表和一个 company_person 表来显示哪个人在哪个公司工作。现在插入三个公司和四个人。这并不意味着 company_person 表中填充了 3 x 4 = 12 条记录(即所有人都在所有公司工作)。那没有任何意义。
外键仅保证您不能将无效数据(即不存在的人或不存在的公司)插入相关表中。您必须自己插入记录。
推荐阅读
- latex - 如何在不破坏交叉引用的情况下更改 r-markdown 中的附录的章节/节/页编号模式?
- ios - 从 Firebase 检索所有子值并显示在文本字段/文本视图上
- kubernetes - 如何在 Kubernetes Dashboard 中获取 Prometheus 数据
- docker - 如何将 docker cron 日志写入 stdout/stderr
- c - 在进行linux内核开发时如何弄清楚错误代码的含义?
- reactjs - Hot Module Reloader App 是最新的 bundle rebuilt 没有热更新
- php - 尝试使用子查询将数据插入字段
- javascript - 如何根据用户的输入更改 html 元素的值?
- c++ - 什么是 C++:auto = [] 语法
- javascript - if 语句末尾的大括号会改变程序的行为方式(与根本不添加括号相反)。为什么?