【问题标题】:Set Foreign Key Column In Child Table To Null If Parent Foreign Key Deleted如果删除了父外键,则将子表中的外键列设置为空
【发布时间】:2015-04-30 03:23:57
【问题描述】:

我有一个 SQLite 数据库。

我已经学会了如何插入外键,现在我想这样做: 1.删​​除父表中包含外键的行 2. 将引用该外键的任何其他表设置为空。

我已阅读有关级联删除的信息,但这似乎会删除任何具有该外键的行。相反,我只想将任何具有引用外键的列值的表中的值设为空。

你能告诉我该怎么做吗?也许术语是什么?

【问题讨论】:

    标签: mysql database sqlite foreign-keys foreign-key-relationship


    【解决方案1】:

    对于 MySQL,听起来你想声明你的外键约束

    ON DELETE SET NULL
    

    参考:http://dev.mysql.com/doc/refman/5.6/en/innodb-foreign-key-constraints.html

    我对sqllite不太熟悉,但是ON DELETE SET NULL在...中被提及

    参考:https://www.sqlite.org/foreignkeys.html#fk_actions

    【讨论】:

    • 是的,这看起来正是我所需要的。你知道我可以将它添加到现有表中吗?所有示例都涵盖了在创建表时设置它
    • @Aggressor 评论不用于提出新问题。如果您想知道如何更改现有表中的约束,请编辑您的问题或提出新问题。
    【解决方案2】:
    ON DELETE SET NULL
    

    在你创建外键约束的地方添加这个

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-07
      • 1970-01-01
      • 2017-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-21
      相关资源
      最近更新 更多