| PostgreSQL 7.4 文檔 | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 11. 索引 | Fast Forward | Next |
索引還可以用于強迫字段數值的唯一性,或者是多個字段組合值的唯一性.
CREATE UNIQUE INDEX name ON table (column [, ...]);目前,只有 B-tree 索引可以聲明為唯一的.
如果索引聲明為唯一的,那麼就不允許出現多個索引值相同的行。 我們認為 NULL 值相互間不相等。 一個多字段唯一索引認為只有兩行數據裡所有被索引字段都相同的時候才是相同的,這種數據才被拒絕。
如果一個表聲明了一個唯一約束或者一個主鍵, 那麼 PostgreSQL 自動在那些組成主鍵或者唯一字段的列上創建唯一索引(可能地話是一個多字段索引), 以強迫這些約束.
注意: 給一個表增加唯一約束的比較好的辦法是 ALTER TABLE ... ADD CONSTRAINT. 用索引強制唯一約束應該認為是一個實現細節,而不應該直接訪問。 不過,我們應該知道,我們沒有必要在唯一字段上建立索引,那樣做只會重復建立自動創建的索引。