2009-06-04 37 views
0

我对MySQL相对来说比较陌生,我想知道是否有可能在表中没有主键和多对多关系的表枢轴/映射中防止重复条目。一个简单的例子:有没有一种方法可以防止表中的重复条目数据透视/映射?

table 1 
table1ID 
field 
field 

table 2 
table2ID 
field 
field 

pivot table 
table1ID 
table2ID 

由于一个多到多的关系将意味着一个[单一]主键不能被使用,是有简洁的方式(1-2查询),以防止重复条目(相同table1ID,table2ID对)被添加?

编辑:显然,这可以通过SELECT和一个循环遍历结果来完成,但不仅仅是一个额外的调用,但是还有一个额外的循环。

回答

1

枢轴表应具有两列的一个主键:

PRIMARY KEY(table1ID, table2ID) 

这加速了查找和确保唯一性。你也可以在另一个方向添加一个UNIQUE键(table2ID,table1ID)

+0

只是为了澄清,如果两者都是主键,那么UPDATE ON DUPLICATE KEY是否适用? – user117046 2009-06-04 03:56:18

相关问题