2014-12-24 48 views
0

我有类似下面的表格:在MySQL复制外键

  • 一个(IDb.idc.id
  • B(ID
  • C(ID

在表a上,我想要有b.id和c.id的外键字段。但是,只允许一次使用b和c外键的相同组合。例如,如果b.id = 1和c.id = 1(在表中有一个外键)就没有问题,但是不能有另一条记录,其中b.id = 1和c.id = 1等。

我正在使用MySQL,我该如何改变我的数据库来执行此操作?

+0

组合为唯一键。 –

+0

我已经给出了答案检查示例。它会满足您的要求。 –

回答

1

试试这个:

ALTER TABLE `a` ADD UNIQUE `unique_index`(`b.id`, `c.id`); 

所以,在这个组合你的价值永远是独特的,其他值将不插。

+0

正是我需要的。谢谢。 – ncf

+0

我很高兴帮助别人。 –

2

你可以b.id创建唯一索引和c.id

ALTER TABLE `a` 
ADD UNIQUE INDEX `unique_b_c` (`b.id`, `c.id`); 
+0

这就是我所需要的,Manoj只是更快一点。谢谢 – ncf

+0

@NathanFrancy它没关系。你的答案很好。 –

0

试着这么做:

ALTER TABLE a ADD UNIQUE INDEX myindexb.idc.id);