在SQLServer中,可以使用语法"(nolock)"来确保查询不会锁定表,或者不会被锁定同一表的其他查询阻止.

SELECT * FROM mytable (nolock) WHERE id = blah

Postgres中的等效语法是什么?我在PG(http://www.postgresql.org/docs/8.1/interactive/sql-lock.html)中找到了一些关于表锁定的文档,但这些文档似乎都是针对如何创建一个表,而不是确保它是not locked.

推荐答案

SELECT不会锁定PostgreSQL中的任何表,除非需要锁定:

SELECT * FROM tablename FOR UPDATE;

PostgreSQL使用MVCC来最小化锁争用,以便在多用户环境中实现合理的性能.读者不会与作者或其他读者发生冲突.

Postgresql相关问答推荐

PostgreSQL数据文件是否仅在判断点期间写入磁盘?

到第二天的Postgres计时器

哪种数据类型是除法的结果?

如何在PostgreSQL中正确删除数据库

无法使用PGx连接到Postgres数据库AWS RDS

如何获得一起满足数量要求的物品? (WHILE 循环还是 CTE?)postgresql

postgresql中多个左连接的空结果

PL/pgSQL 中 PL/SQL %ISOPEN 的类似功能是什么?

Windows上的psql:错误:编码UTF8的字节序列无效:0xc8 0x20

有没有办法使用postgresql将具有不同ID的同一行多次添加到表中?

转换数组类型

try 访问本地主机中的数据库时如何解决Error: The server does not support SSL connections?

Nodejs应用程序的node-postgres vs pg-promise

升级到 OSX Mavericks 后修复 postgresql

从 psycopg2 异常中获取错误消息

从 Select 中创建一个临时表,如果表已经存在则插入

PostgreSQL 权限解释

丢弃顺序和级联

在 PostgreSQL 中跳过每 n 个结果行

PostgreSQL regexp_replace() 只保留一个空格