PostgreSQL跨会话的序列

时间:2013-02-24 05:17:33

标签: postgresql

如果两个客户同时插入到具有唯一排序列的表中,一个客户端是否可以获得unique_violation?换句话说,两个客户都可以通过调用nextval()得到相同的结果吗?

我做了一个快速谷歌搜索,但找不到任何东西。

1 个答案:

答案 0 :(得分:4)

正如序列的PostgreSQL文档中详细介绍的那样:

即使在并发事务中,同一序列上的两个nextval调用也不会返回相同的值。换句话说,对同一序列的两个单独的nextval调用永远不会返回相同的值。这会导致一些其他异常,例如在事务回滚时出现的序列值中的“漏洞”,这些异常在文档中再次描述。