2012-07-17 61 views
1

我有用于地址的mysql数据库表,它包含用于邮政编码/街道/城镇的单独列。确保表项是唯一的

我怎样才能确保一个完整的表条目是独一无二的,而不仅仅是一列?

+1

在表中的所有字段上创建一个唯一键。不过,无论何时向表中添加新字段,都必须更新密钥。 – 2012-07-17 18:09:00

+0

为邮政编码,街道,城镇增添了独特的限制。但是也有可能重复XYZ街道XYZ st等难以识别的重复 – 2012-07-17 18:09:40

回答

1

mysql允许您为n个字段或列创建唯一键。当你声明这个列是唯一的,mysql会检查重复的约束。 欲了解更多信息,请阅读mysql unique key

“UNIQUE和PRIMARY KEY约束条件都为一列或一组列的唯一性提供保证。”

但是,我建议前端验证用于使用户舒适的(只是柜面ü没有想到它;))

1

数据库表可能有多个唯一键,因此它会拒绝任何违反您在表中设置的限制的INSERT查询。

只需将其他列设置为唯一,您应该会发现问题已解决。

2

{post code, street, town}一个composite关键。

一个键可以是主键(PRIMARY KEY)或备用(UNIQUE约束)。


顺便说一句,可以在两种不同town■找相同post code?如果不是,你不需要密钥中的town。事实上,考虑通过将town“提取”到单独的表中来标准化您的模型。