Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mySQL限制级联无操作设置_Mysql_Cascade_Restrict - Fatal编程技术网

mySQL限制级联无操作设置

mySQL限制级联无操作设置,mysql,cascade,restrict,Mysql,Cascade,Restrict,在用户留下评论的论坛表上使用的最佳约束是什么 假设某些用户将在稍后阶段被删除。如果我删除了一个已发表评论的用户,那么表中的users条目会发生什么变化 希望有人能解释一下。这个问题有两个部分: 如何最好地实现这一点?您可以“软删除”用户行。这具有以下优点: 不丢失用户信息 允许取消删除用户 在不丢失链接到用户的数据的情况下维护引用完整性 软删除可以通过向users表中添加另一列来实现,其中包含dateDeleted列——如果该列为Null,则不会删除该用户。我相信这样的机制是可以删除帖子的

在用户留下评论的论坛表上使用的最佳约束是什么

假设某些用户将在稍后阶段被删除。如果我删除了一个已发表评论的用户,那么表中的users条目会发生什么变化


希望有人能解释一下。

这个问题有两个部分:

  • 如何最好地实现这一点?您可以“软删除”用户行。这具有以下优点:

    • 不丢失用户信息
    • 允许取消删除用户
    • 在不丢失链接到用户的数据的情况下维护引用完整性
    软删除可以通过向users表中添加另一列来实现,其中包含
    dateDeleted
    列——如果该列为Null,则不会删除该用户。我相信这样的机制是可以删除帖子的

  • restrict cascade no action
    做什么?说

    • 限制:拒绝父表的删除或更新操作。 指定限制(或不执行任何操作)与省略ON相同 删除或更新子句

    • 无操作:标准SQL中的关键字。在MySQL中,相当于 限制InnoDB拒绝父级的删除或更新操作 表中是否存在相关的外键值。 有些数据库系统有延迟检查,不执行任何操作都是错误的 延期支票。在MySQL中,检查外键约束 立即,因此没有操作与限制相同


    换句话说,如果您使用此选项,您将无法删除行,如果这样做会破坏引用完整性。

    非常感谢。那么,对于您为更新和删除提供的第一个选项,哪一个约束最适合使用?@olad如果您使用
    InnoDB
    作为存储引擎,外键将自动强制执行。因此,更新时的
    和删除时的
    的默认值是可以的,因为您不会(或者至少不应该)更改行的主键。