【问题标题】:FOREIGN KEY ON DELETE SET NULL删除设置空的外键
【发布时间】:2019-05-11 03:17:29
【问题描述】:

我正在尝试创建表,但在外键的最后一行不断出现以下错误。请帮忙:

CREATE TABLE branch_supplier(
branch_id INT,
supplier_name VARCHAR(40),
supply_type VARCHAR(40),
PRIMARY KEY(branch_id, supplier_name),
FOREIGN KEY(branch_id)REFERENCES branch(branch_id) ON DELETE SET NULL
);

失败

ER_FK_COLUMN_NOT_NULL:列 'branch_id' 不能为 NOT NULL:需要 在外键约束'branch_supplier_ibfk_1' SET NULL

尝试在mysql中创建一个新表并设置外键。

【问题讨论】:

    标签: mysql popsql


    【解决方案1】:

    PRIMARY KEY 是一个唯一索引,其中所有键列都必须定义为 NOT NULL。

    您将branch_id 定义为可为空。但这是不允许的,因为它是主键的一部分。

    【讨论】:

    • 我是 sql 新手,正在尝试通过在线视频学习。我复制了与视频中显示的相同的内容,但不确定我缺少什么。你能告诉我我应该写什么吗?(​​完整的命令)。提前感谢您的帮助。
    • 删除ON DELETE SET NULL部分
    【解决方案2】:

    删除“on delete set null”部分它的工作原理

    【讨论】:

    • 请添加更多详细信息以扩展您的答案,例如工作代码或文档引用。
    猜你喜欢
    • 1970-01-01
    • 2014-01-03
    • 2017-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-21
    相关资源
    最近更新 更多