如何确保一个字段值即使被删除也不再被使用?
How to ensure a field value is never used again even if it is deleted?
我正在使用 postgres,我需要一个辅助键或类似的概念。我充分利用了id字段的主键。除了主键之外,我还生成了一个有用的 'conversational id',例如 'OH-15-001'。
我想确保上面的辅助键即使被数据库销毁也只使用一次。我已经创建了一个算法来生成这些 ID,但我不想将它们保存在另一个 table 中。我想知道 Postgres 中是否有一项功能可以确保该字段是唯一的,即使它已被删除? (类似于id字段)
A PRIMARY KEY
不能确保针对已删除的先前值的唯一性。如果您从序列中生成它们,您将始终获得一个新的唯一 ID,但没有什么能阻止您手动插入具有先前删除的 ID 的记录。
您可以使用序列作为 ID 生成算法的一部分吗? (加上 UNIQUE
约束的行为与主键完全相同)
我正在使用 postgres,我需要一个辅助键或类似的概念。我充分利用了id字段的主键。除了主键之外,我还生成了一个有用的 'conversational id',例如 'OH-15-001'。
我想确保上面的辅助键即使被数据库销毁也只使用一次。我已经创建了一个算法来生成这些 ID,但我不想将它们保存在另一个 table 中。我想知道 Postgres 中是否有一项功能可以确保该字段是唯一的,即使它已被删除? (类似于id字段)
A PRIMARY KEY
不能确保针对已删除的先前值的唯一性。如果您从序列中生成它们,您将始终获得一个新的唯一 ID,但没有什么能阻止您手动插入具有先前删除的 ID 的记录。
您可以使用序列作为 ID 生成算法的一部分吗? (加上 UNIQUE
约束的行为与主键完全相同)