2015-09-16 71 views
0

我使用postgres,我需要一個輔助鍵或類似的概念。我充分利用了id字段的主鍵。除了主鍵之外,我還生成了一個有用的'會話ID',如'OH-15-001'。如何確保字段值即使被刪除也不會再次使用?

我想確保即使被數據庫銷燬,上面的二級密鑰也只能使用一次。我創建了一個算法來生成這些ID,但我不希望將它們保存在另一個表中。我想知道在Postgres中是否有一個功能來確保該字段是唯一的,即使它被刪除? (類似於ID字段)

+1

我能想到的唯一一件事:不要真正刪除這些行,而只是將它們標記爲已刪除(例如,創建一個過濾器視圖他們出) –

+0

這正是我所決定的。如果你寫我會接受 –

回答

0

A PRIMARY KEY不確保針對移除的先前值的唯一性。如果您從序列中生成它們,您將始終獲得一個新的唯一ID,但沒有任何事會阻止您手動插入帶有先前刪除的ID的記錄。

您可以使用序列作爲您的ID生成算法的一部分嗎? (即,加上UNIQUE約束的行爲與主鍵完全相同)

+0

感謝您的非常清楚的細節! –

相關問題