我使用postgres,我需要一個輔助鍵或類似的概念。我充分利用了id字段的主鍵。除了主鍵之外,我還生成了一個有用的'會話ID',如'OH-15-001'。如何確保字段值即使被刪除也不會再次使用?
我想確保即使被數據庫銷燬,上面的二級密鑰也只能使用一次。我創建了一個算法來生成這些ID,但我不希望將它們保存在另一個表中。我想知道在Postgres中是否有一個功能來確保該字段是唯一的,即使它被刪除? (類似於ID字段)
我使用postgres,我需要一個輔助鍵或類似的概念。我充分利用了id字段的主鍵。除了主鍵之外,我還生成了一個有用的'會話ID',如'OH-15-001'。如何確保字段值即使被刪除也不會再次使用?
我想確保即使被數據庫銷燬,上面的二級密鑰也只能使用一次。我創建了一個算法來生成這些ID,但我不希望將它們保存在另一個表中。我想知道在Postgres中是否有一個功能來確保該字段是唯一的,即使它被刪除? (類似於ID字段)
A PRIMARY KEY
不確保針對移除的先前值的唯一性。如果您從序列中生成它們,您將始終獲得一個新的唯一ID,但沒有任何事會阻止您手動插入帶有先前刪除的ID的記錄。
您可以使用序列作爲您的ID生成算法的一部分嗎? (即,加上UNIQUE
約束的行爲與主鍵完全相同)
感謝您的非常清楚的細節! –
我能想到的唯一一件事:不要真正刪除這些行,而只是將它們標記爲已刪除(例如,創建一個過濾器視圖他們出) –
這正是我所決定的。如果你寫我會接受 –