MySQL唯一索引替换一个外键

时间:2014-06-26 17:00:26

标签: mysql phpmyadmin innodb

我有一个名为pivot的数据透视表,可将tableA映射到tableB`。

pivot包含以下字段:tA_idtB_id

我有两个外键 - 每个字段一个。

1)pivot_tA_id_foreign tA_id id tableA pivot_tB_id_foreign {/ 1}}

2)tB_id id tableB ALTER TABLE 'pivot' ADD UNIQUE 'pivot_tA_id_tB_id_unique' ('tA_id', 'tB_id') pivot_tA_id_foreign {/ 1}}

现在,当我在两个列上添加一个UNIQUE索引时,如下所示:

{{1}}

{{1}}索引消失。

我需要两列上的外部索引和UNIQUE。

2 个答案:

答案 0 :(得分:0)

您可以使用alter table命令(您不需要输入错误的引号)或在数据透视表定义中包含唯一约束:

ALTER TABLE pivot ADD UNIQUE pivot_tA_id_tB_id_unique (tA_id, tB_id);

OR

create table pivot(
      tA_id int, 
      tB_id int,
      foreign key(tA_id) references tableA(id),
      foreign key(tB_id) references tableB(id),
      constraint pivot_tA_id_tB_id_unique UNIQUE (tA_id, tB_id)
  );

答案 1 :(得分:0)

也许尝试执行没有单引号的SQL语句......

ALTER TABLE pivot ADD UNIQUE pivot_tA_id_tB_id_unique (tA_id, tB_id)