如何在mysql的表中多次使用主键作为外键?

时间:2017-04-08 04:53:20

标签: mysql

假设我有Table_ATable_City。在Table_A我有current_city_Iddestination_city_Id列。我想将Table_City的主键用作外键两次(一个用于current_city_Iddestination_city_Id)。怎么可能?它给了我一个错误,即该表中已存在外键。请帮帮我。

2 个答案:

答案 0 :(得分:0)

您只能拥有一个主键,但主键中可以有多个名为Composite Primary Key的列。

表可以有一个复合主键,它是由两列或更多列组成的主键。例如:

CREATE TABLE Table_City (
  current_city_Id INT,
  destination_city_Id INT,
  info char(200),
  primary key (current_city_Id, destination_city_Id)
);

您还可以在表上使用唯一索引,这有点像主键,因为它们会强制执行唯一值,并且会加快查询这些值。

答案 1 :(得分:0)

表中可以有的外键数量没有限制。假设table_city.id是table_city的主键,它是一个整数......

create table table_a (
    current_city_Id integer references table_city(id)
    destination_city_Id integer references table_city(id)
);

也许你错误地宣称他们是primary key