锁定新插入的行[PostgreSQL]

时间:2017-09-12 22:28:01

标签: sql postgresql

有没有办法锁定最近插入的行,以便其他事务在我当前的事务仍在进行时不会看到它?

1 个答案:

答案 0 :(得分:2)

你不必。事实上,你不能有相反的行为。在事务提交之前,无法使新插入的行可见。

尽管并发SELECT不可见,但它仍然会影响并发INSERT(或UPDATE s)。具体来说,如果您尝试将相同的值插入到两个不同事务中的唯一索引中,则会阻塞一个直到另一个提交或回滚。然后它将决定是否需要引发唯一的违规错误,或者它是否可以继续。因此,虽然您无法直接查看未提交的数据,但有时您可以看到其副作用。