2012-07-17 60 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「提取」到單獨的表中來標準化您的模型。