首页 > 数据库 > mysql教程 > MySQL如何引用多列主键?

MySQL如何引用多列主键?

DDD
发布: 2024-12-02 18:16:15
原创
692 人浏览过

How Do I Reference a Multi-Column Primary Key in MySQL?

MySQL 中引用多列主键

在表与表之间建立关系时,经常会遇到一个主键由多个主键组成的场景列。在 MySQL 中,为此类表创建外键需要量身定制的方法。

考虑一个场景,其中您有一个具有以下主键的表:

CREATE TABLE ProductAttributes (
  product_id INT NOT NULL,
  attribute_id INT NOT NULL,
  PRIMARY KEY (product_id, attribute_id)
);
登录后复制

现在,假设您有另一个需要引用 ProductAttributes 表的表。要建立链接两个表的外键,请按照下列步骤操作:

CREATE TABLE MyReferencingTable AS (
  [COLUMN DEFINITIONS]
  refcol1 INT NOT NULL,
  rofcol2 INT NOT NULL,
  CONSTRAINT fk_mrt_ot FOREIGN KEY (refcol1, refcol2)
                        REFERENCES ProductAttributes(product_id, attribute_id)
) ENGINE=InnoDB;
登录后复制

通过指定引用表中的列和主键表中的相应列,您可以创建外键约束。此约束确保引用表中的每一行在主键表中都有匹配的主键。

注意事项:

  • MySQL 要求外键是indexed,它解释了引用列上的索引。
  • 利用约束语法来命名约束,以便于更改或删除稍后。
  • 请记住,InnoDB 强制执行外键,而 MyISAM 会忽略它们。

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板