Mysql 什么时候启用“删除级联”无效?
我有一个父表,比如说a和一个子表,比如说B和B引用了a的主键 因此,大多数人在从父级A中删除时,都会使用on delete cascade来修改表。 我的问题是:是否有我不需要“删除级联”的情况的示例?Mysql 什么时候启用“删除级联”无效?,mysql,cascade,cascading-deletes,Mysql,Cascade,Cascading Deletes,我有一个父表,比如说a和一个子表,比如说B和B引用了a的主键 因此,大多数人在从父级A中删除时,都会使用on delete cascade来修改表。 我的问题是:是否有我不需要“删除级联”的情况的示例? 在表维护/恢复期间,DBA可能会暂时关闭delete cascade,以便清空和重新加载父表,而不会损坏/影响表外的数据。我不喜欢Marc B的示例,因为产品通常不会是某个类别的“子类”。产品和类别可以重叠,具有多对多关系 在没有父级的情况下,数据仍然有用的情况下,我将ON DELETE设置为N
在表维护/恢复期间,DBA可能会暂时关闭delete cascade,以便清空和重新加载父表,而不会损坏/影响表外的数据。我不喜欢Marc B的示例,因为产品通常不会是某个类别的“子类”。产品和类别可以重叠,具有多对多关系 在没有父级的情况下,数据仍然有用的情况下,我将ON DELETE设置为NULL 例如 假设您有一个
translations
表,其中包含列id
,translation\u category
,from\u text
,to\u text
该表包含各种文本到文本的翻译。translation\u类别
是一个外键,它引用主要使用翻译的特定字段。但您也可以执行忽略该键的查询,以获取从_text到_text和到_text值的公共计数,因为它们可能会对不同的翻译_category
值重复
即使您碰巧删除了一个translation\u类别
父记录,该数据仍然可能有用。所以我会在那里使用DELETE SET NULL
当然,可以将相同的模式更改为将translation\u category
放入多对多链接表中,但相同的原则仍然适用。电子商务系统,您可以删除一个类别,该类别将删除该类别中的所有产品,并从以前下的任何订单中删除这些产品。“哎呀”