【问题标题】:Can you add a relationship to a primary key if the second table's column can be null?如果第二个表的列可以为空,您可以向主键添加关系吗?
【发布时间】:2020-01-03 03:23:09
【问题描述】:

我还在学习外键的工作原理,想知道一列是否可以为空,是否可以链接到主键?

Table Schema
users    dmca-takedown
id------->user_id (can be null)

在你问之前,user_id 可以为空,因为它是一个用户和非用户都可以填写的表单。另外,我相信通过表单的名称,您也了解它的目的。

让我澄清一下我的问题:我理解外键“可以”链接到主键,但是如果主表的数据不能为空,如果数据为空会导致约束问题吗?

【问题讨论】:

    标签: mysql foreign-keys primary-key


    【解决方案1】:

    您可以将外键列声明为可为空。它对引用的表没有影响。

    NULL 不匹配任何内容。因此,外键中的 NULL 不需要用户表的引用主键包含具有 NULL 的行。

    我觉得我以前回答过这个问题……啊,是的,从 2009 年 1 月(将近 10 年前)开始:

    MySQL foreign key to allow NULL?

    【讨论】:

    • 什么是 SQL 反模式?
    • 这是我撰写的一本书的主题:pragprog.com/book/bksqla/sql-antipatterns
    • 是的,我看到了。只是想知道什么是反模式。也许我会考虑在我得到报酬后买这本书。
    • 来自Introduction:“什么是反模式?反模式是一种旨在解决问题但通常会导致其他问题的技术。反模式以不同的方式广泛实施,但有一条共同点。” “SQL Antipatterns 描述了我在技术支持和培训课程中与他们交谈、与他们一起开发软件并在 Internet 论坛上回答他们的问题时,看到人们在使用 SQL 时最常犯的错误。”跨度>
    猜你喜欢
    • 2018-06-23
    • 1970-01-01
    • 2022-01-19
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 2021-02-21
    相关资源
    最近更新 更多