用外键引用 MySQL 中的两列主键
在设计关系数据库表时,经常会遇到多列的情况形成一个表的主键,另一个表需要引用它。在 MySQL 中,创建外键来链接到此类复合主键需要一些特定的考虑。
要在引用两列主键(product_id、attribute_id)的另一个表中建立外键:
1 2 3 4 5 6 7 | CREATE TABLE MyReferencingTable (
[COLUMN DEFINITIONS]
refcol1 INT NOT NULL,
refcol2 INT NOT NULL,
CONSTRAINT fk_mrt_ot FOREIGN KEY (refcol1, refcol2)
REFERENCES OtherTable(product_id, attribute_id)
) ENGINE=InnoDB;
|
登录后复制
此语法规定了几个关键点:
-
索引引用列: MySQL 要求外键列建立索引,因此引用列(refcol1、refcol2)必须有索引。
-
使用约束语法: CONSTRAINT 语法允许您命名约束,以便以后在必要时更容易管理和操作。
-
使用InnoDB引擎: InnoDB严格执行外键,确保数据完整性。另一方面,MyISAM 会解析外键约束,但最终会忽略它们。
以上是MySQL中如何用外键引用两列主键?的详细内容。更多信息请关注PHP中文网其他相关文章!