在另一个表中使用两个外部auto_increment键作为复合主键?

时间:2017-03-07 04:34:18

标签: mysql sql

实现这一目标的最佳方式是什么?

我目前有表格,如下:

https

但是,我收到的错误是两列不能同时是AUTO_INCREMENT列。实现这个的最佳方法是什么,在table3中,table1id和table2id是原始table1和table2中的外键?

1 个答案:

答案 0 :(得分:1)

table1id中的

table2idtable3列根本不需要自动递增。实际上,它们的值由其他表中的自动增量列确定。相反,只需将此定义用于table3

CREATE TABLE table3 (
    table1id INT NOT NULL,
    table2id INT NOT NULL,
    PRIMARY KEY (table1id, table2id),
    FOREIGN KEY (table1id) REFERENCES table1 (table1id),
    FOREIGN KEY (table2id) REFERENCES table2 (table2id)
);

可以还向table3添加自动增量列,但您可能不需要它,因为table1idtable2id的组合应该允许您唯一地处理此表中的每条记录。