在SQLServer的,可以使用语法“(NOLOCK)”,以确保该查询不锁定表或不阻止由其他查询锁定相同的表。 e.g。

SELECT * FROM mytable (nolock) WHERE id = blah

什么是在Postgres的等效语法?我发现,在PG表上锁定了一些文件( HTTP://www.postgresql .ORG /文档/ 8.1 /互动/ SQL-lock.html ),但是这一切似乎在面向怎样的锁定的表,不能保证它的的未锁定

有帮助吗?

解决方案

一个SELECT不锁定在任何的PostgreSQL表,除非你想的锁定:

SELECT * FROM tablename FOR UPDATE;

PostgreSQL使用 MVCC 以最小化锁争用,以允许在多用户环境下合理的性能。读者不与作家,也没有其他读者冲突。

其他提示

我做了一些研究,看来,在SQL Server NOLOCK提示是大致相同READ UNCOMMITTED事务隔离级别。在PostgreSQL,您可以设置READ UNCOMMITTED,但它静静地升级水平,READ COMMITTEDREAD UNCOMMITTED不被支持。

8.4的PostgreSQL文档事务隔离:的http:// WWW。 postgresql.org/docs/8.4/static/transaction-iso.html

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top