Mysql 关系限制是否阻止我删除父记录?
假设我有一个表,它有一个唯一索引的列,名为Mysql 关系限制是否阻止我删除父记录?,mysql,database,foreign-keys,Mysql,Database,Foreign Keys,假设我有一个表,它有一个唯一索引的列,名为user\u name,它被键入一个注释表,该表的列名为user\u name,作为外键。关于要采取的行动,我有一些选择,特别是1)更新和2)删除 我知道其中一些选项是为了Cascade这些关系的效果,例如,如果我从父表中删除父节点,则带有外键的子记录将被删除,即如果我删除用户,如果将其键控给用户,则其所有注释都将消失。我相信这将是一个on delete=>cascade选项,对于on update来说也是一个类似的选项,比如更改用户名会更改注释所有者的
user\u name
,它被键入一个注释表,该表的列名为user\u name
,作为外键。关于要采取的行动,我有一些选择,特别是1)更新
和2)删除
我知道其中一些选项是为了Cascade
这些关系的效果,例如,如果我从父表中删除父节点,则带有外键的子记录将被删除,即如果我删除用户,如果将其键控给用户,则其所有注释都将消失。我相信这将是一个on delete
=>cascade
选项,对于on update
来说也是一个类似的选项,比如更改用户名会更改注释所有者的名称
我的问题是,如果我要更新父记录,而操作是限制,这是否意味着父记录的外键不能更改,因为它设置了子记录?这些操作是否只涉及在更改父记录时如何处理子记录?另外,如果我将delete
设置为restrict
,这是否意味着如果父记录已有子记录,我将无法删除它
谢谢
- 设置NULL-当父行需要删除/更新时,所有子行将被删除 设置为空
- 无操作-相当于限制
mysql> SET foreign_key_checks = 0;
mysql> SOURCE dump_file_name;
mysql> another query;
mysql> SET foreign_key_checks = 1;