【问题标题】:What are the corresponding configs in MySQL for deletion behaviors in PostgreSQL for CASCADE, RESTRICT, NO ACTION, SET NULL, SET DEFAULTMySQL 中针对 CASCADE、RESTRICT、NO ACTION、SET NULL、SET DEFAULT 的删除行为在 MySQL 中的对应配置是什么
【发布时间】:2020-02-26 17:27:45
【问题描述】:

我有使用 Postgres 及其对外键引用的删除行为的经验(引用自 PostgreSQL docs):

  • NO ACTION(默认):如果在检查约束时任何引用行仍然存在,则会引发错误
  • RESTRICT:防止删除引用的行。这两种选择的本质区别在于NO ACTION 允许将检查推迟到交易的后期,而RESTRICT 则不允许。
  • CASCADE:当引用的行被删除时,引用它的行也应该被自动删除。
  • SET NULL:当被引用的行被删除时,导致引用列设置为NULL
  • SET DEFAULT:删除引用的行时,将引用列设置为其默认值。请注意,这些并不能成为您遵守任何约束的借口。例如,如果某个操作指定了SET DEFAULT,但默认值不满足外键,则操作将失败。

MySQL 中的所有这些行为是否也有相应的配置?我正在查看docs,但没有发现任何有用的信息...

【问题讨论】:

  • 太棒了,非常感谢!如果您将此添加为答案,我会接受它,以便您获得积分! :)

标签: mysql sql postgresql cascading-deletes


【解决方案1】:

您可以在此处找到 mysql 文档:

https://dev.mysql.com/doc/refman/8.0/en/create-table-foreign-keys.html

reference_option:
    RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT

【讨论】:

    猜你喜欢
    • 2013-04-16
    • 2011-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-07
    • 1970-01-01
    相关资源
    最近更新 更多