首页 >数据库 >mysql教程 >如何在 MySQL 中创建引用多列主键的外键?

如何在 MySQL 中创建引用多列主键的外键?

Linda Hamilton
Linda Hamilton原创
2024-12-01 18:24:10745浏览

How to Create a Foreign Key Referencing a Multi-Column Primary Key in MySQL?

在 MySQL 中引用多列主键

在关系数据库场景中,表拥有由多列定义的复合主键(例如,product_id、attribute_id),出现一个常见问题:另一个表如何与这个多列主表建立外键关系键?

解决方案:

复合外键语法:

解决方案涉及在引用中定义复合外键桌子。此类外键的语法如下:

CREATE TABLE MyReferencingTable (
    [COLUMN DEFINITIONS]
    refcol1 INT NOT NULL,
    refcol2 INT NOT NULL,
    CONSTRAINT fk_mrt_ot FOREIGN KEY (refcol1, refcol2)
                        REFERENCES OtherTable(col1, col2)
) ENGINE=InnoDB;
  • refcol1 和 refcol2: 引用表中形成外键复合键的列。
  • col1 和 col2: 引用表中构成主表的列key。
  • fk_mrt_ot: 该外键的约束名称(可选但推荐)。

关键注意事项:

  • 索引: MySQL 需要外键要索引的列,确保高效的连接操作。
  • CONSTRAINT 语法: 利用约束语法提供对外键的命名引用,使后续更改或删除更容易。
  • 引擎: InnoDB 是一个强制外键约束的事务性引擎,但是 MyISAM(非事务性引擎)引擎)忽略外键规范。

以上是如何在 MySQL 中创建引用多列主键的外键?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn