现在我在一台机器上安装了Postgres并创建了
一个带有串行列的表.每当插入新行时,此列
自动递增.如果我在另一台机器上安装Postgres进行分布式计算并使用串行列创建相同的表,则串行列从1开始?或者我可以为列设置最小值(第一台机器1的最大值)?
默认情况下,SERIAL创建
一个以1开头的SEQUENCE.
如果需要,可以修改序列,以便每台机器都有一个不同的起始值,并且所有序列在创建表后都有一个偏移量.例如,ALTER SEQUENCE the_sequence_name START WITH 2 INCREMENT BY 10.为每台机器提供不同的START WITH值,并确保它们都具有相同的INCREMENT BY.这样每台机器都可以保证获得唯一的ID.
如果你这样做,你可能想要使用bigint键列,并分配像INCREMENT BY 1000这样的大偏移量.这样你就不必在添加机器#11时感到痛苦.
另一种选择是使用uuid主键.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。