1

我有地址的mysql数据库表,它包含邮政编码/街道/城镇的单独列。

如何确保完整的表条目是唯一的,而不仅仅是其中一列?

4

3 回答 3

2

在 上制作复合{post code, street, town}

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


顺便说一句,两个不同town的 s 可以有相同的post code吗?如果没有,则不需要townin 键。事实上,考虑通过“提取”town到单独的表来规范化您的模型。

于 2012-07-17T19:15:02.490 回答
1

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

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

于 2012-07-17T18:07:36.910 回答
1

mysql 允许您为 n 个字段或列拥有一个唯一键。当您将此列声明为 unique 时,mysql 检查重复约束。有关更多信息,请阅读此mysql 唯一键

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

但是,我建议进行前端验证以使用户感到舒适(以防你没有想到它;))

于 2012-07-17T18:10:15.883 回答