【发布时间】:2015-12-02 05:23:22
【问题描述】:
假设我有一个表,其中有一个名为user_name 的唯一索引列,该表以列名user_name 作为外键的注释表作为键。我有一些关于要采取的行动的选项,特别是 1) on update 和 2) on delete。
我了解其中一些选项是对Cascade这些关系的影响,例如如果我从父表中删除父节点,则具有外键的子记录将被删除,即如果我删除用户,如果他们键入用户,他们所有的 cmets 都应该消失。我相信这将是一个on delete => cascade 选项,这与on update 类似,例如更改用户名会更改评论所有者的名称。
我的问题是,如果我要 update 父记录并且操作是 restrict,这是否意味着父记录的外键无法更改,因为它设置了子记录?如果父记录发生更改,这些操作是否仅讨论如何处理子记录?另外,如果我将delete 设置为restrict,这是否意味着如果父记录已经存在子记录,我将无法删除它?
谢谢。
【问题讨论】:
标签: mysql database foreign-keys