如果两个客户同时插入到具有唯一排序列的表中,一个客户端是否可以获得unique_violation
?换句话说,两个客户都可以通过调用nextval()
得到相同的结果吗?
我做了一个快速谷歌搜索,但找不到任何东西。
答案 0 :(得分:4)
正如序列的PostgreSQL文档中详细介绍的那样:
即使在并发事务中,同一序列上的两个nextval
调用也不会返回相同的值。换句话说,对同一序列的两个单独的nextval
调用永远不会返回相同的值。这会导致一些其他异常,例如在事务回滚时出现的序列值中的“漏洞”,这些异常在文档中再次描述。