我有一个名为pivot
的数据透视表,可将tableA
映射到tableB`。
pivot
包含以下字段:tA_id
,tB_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。
答案 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)