我需要一个自定义唯一标识符(序列)。在我的表中有一个字段ready_to_fetch_id,默认情况下为null,当我的消息准备交付时,我使用唯一的最大ID进行更新,这是一个非常繁重的过程,因为负载增加。
因此可以在postgres中使用一些允许null和唯一ID的序列。
答案 0 :(得分:1)
允许NULL值与序列没有任何关系。如果列定义允许NULL,则可以在列中放置NULL值。更新列时,您将从序列中获取nextval。
请注意,如果您计划使用ID来跟踪已处理的行,那么它将无法正常工作。当两个事务要同时更新ready_to_fetch_id列时,最后启动的事务可能首先提交,这意味着要启动的最后一个事务的较高id将在先前事务使用的较低id之前变为可见。