MySQL中的多列外键?

Jam*_*ore 48 mysql

我有一个表,其主键由两列(product_id,attribute_id)组成.我有另一个表需要引用此表.如何在另一个表中创建外键以使用两个主键将其链接到表中的行?

Pat*_*and 80

像这样的东西应该这样做:

CREATE TABLE MyReferencingTable AS (
   [COLUMN DEFINITIONS]
   refcol1 INT NOT NULL,
   rofcol2 INT NOT NULL,
   CONSTRAINT fk_mrt_ot FOREIGN KEY (refcol1, refcol2)
                        REFERENCES OtherTable(col1, col2)
) ENGINE=InnoDB;
Run Code Online (Sandbox Code Playgroud)
  • MySQL需要索引外键,因此引用列上的索引
  • 使用约束语法可以命名约束,如果需要,可以更容易地在以后更改和删除.
  • InnoDB强制执行外键,而MyISAM则不执行.(语法被解析但被忽略)

  • 由于显式索引,我被投票两次?苛刻.我确实指出InnoDB是必要的. (8认同)