在复杂的数据库表关系设计中,外键约束(FOREIGN KEY)是维护数据参照完整性的重要机制。以下关于其关键特性的解析,有助于我们更准确地理解和应用它。
A. 外键约束的 “ON UPDATE CASCADE” 表示主表更新时,从表对应记录同步更新
此描述是正确的。“ON UPDATE CASCADE”是外键约束的一种级联操作选项。当主表(被引用的表)中的主键或唯一键值发生更新时,数据库会自动将从表(引用表)中所有匹配此外键值的记录同步更新为新的值。这是一种保持数据关联一致性的自动化手段。
B. 主表中被从表引用的记录,默认情况下不允许直接删除
此描述是正确的。在未设置“ON DELETE CASCADE”或“ON DELETE SET NULL”等级联删除规则的情况下,如果主表中的某条记录被从表的外键所引用,那么直接删除这条主表记录会违反参照完整性,MySQL将阻止此操作并抛出错误。
C. 从表的外键列必须引用主表的主键或唯一约束列
此描述是正确的。这是定义外键约束的基本前提。外键必须指向另一张表(主表)中具有唯一性约束的列,通常是主键(PRIMARY KEY),也可以是明确声明了唯一约束(UNIQUE KEY)的列,以确保引用的确定性。
D. 创建外键时,必须先创建从表,再创建主表
此描述是错误的。正确的顺序应该是先创建主表(被引用的表),再创建从表(引用表)。因为从表在定义时就需要通过FOREIGN KEY子句指向一个已存在的主表列。如果顺序颠倒,在创建从表并声明外键时,它所引用的主表对象尚不存在,会导致创建失败。
|