SQL使用FOREIGN KEY子句定义参照完整性约束。FOREIGN KEY既可用于列约束,也可用于表约束,语法格式为
参数:
(1)CONSTRAINT symbol:如果不指定约束名,MySQL将根据“tbl_name_ibfk_序数(1,2,3,…)”生成约束名。
(2)foreignkey_part:外键的列名。
(3)tbl_name (key_part,…):外键引用的主表及其主键的列名。
(4)reference_option:当对数据库中的数据进行删除或修改操作而违反了参照完整性约束时,保证参照完整性规则不会被破坏的处理策略。MySQL中FOREIGN KEY子句的处理策略包括以下几个。
RESTRICT:拒绝主表的删除或更新操作。该值是默认值。
CASCADE:主表中删除或更新行时,自动删除或更新从表中的匹配行。
SET NULL:主表中删除或更新该行时,将子表中的外键列设置为NULL。
NO ACTION:标准SQL中的关键字。在MySQL中,等效于RESTRICT。