PostgreSQL无间隙序列

PostgreSQL无间隙序列

我正在从MySql迁移到Postgres,我注意到当您从MySql中删除行时,这些行的唯一ID会在您创建新行时重复使用。使用Postgres,如果您创建行并删除它们,则不会再次使用唯一ID。

在Postgres有这种行为的原因吗?在这种情况下,我可以使它更像MySql吗?


叮当猫咪
浏览 654回答 2
2回答

慕森王

你建议你使用类似的东西INSERT INTO some_table (id, ...) VALUES ( (SELECT max(id)+1 FROM some_table), ...)并重复尝试重复的密钥错误吗?如果是这样,当然,你可以做到这一点,但它会比使用表级或行级锁定进行密钥生成的方法更好,通常由于重复工作而更糟。从根本上说,它不能比基于锁定的方法更好地执行,因为它仍然只能在任何给定时间成功写入一个事务。 
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Ruby