指定当外部表中删除的记录被当前表中的记录引用时,此外部键应在当前表中引起的操作。
用法要指定在外部表中删除引用的记录时在当前表中发生的情况,请使用以下语法:
ForeignKey keyname(key_props) References pkg.class(ref_index) [ OnDelete = ondelete ];
其中ondelete
是下列之一:
-
noaction
无操作(默认)—当试图删除外部表中的引用记录时,尝试会失败。 -
cascade
级联—当外部表中的引用记录被删除时,该表中的引用记录也将被删除。 -
setdefault
—当引用记录在外部表中被删除时,引用记录中对外部表的引用被设置为其默认值。 -
setnull
— 当外部表中的被引用记录被删除时,引用记录中对外部表的引用被设置为null
。
当删除外部表中的某一行时,将检查外部表上具有外键约束的所有引用表,以查看是否有任何行引用了正在删除的行。如果找到任何这样的引用,OnDelete
操作将生效。
默认值为noaction
。