【发布时间】:2010-03-06 23:56:12
【问题描述】:
在 SQLServer 中,您可以使用语法“(nolock)”来确保查询不会锁定表或不会被锁定同一表的其他查询阻塞。 例如
SELECT * FROM mytable (nolock) WHERE id = blah
Postgres 中的等效语法是什么?我在 PG (http://www.postgresql.org/docs/8.1/interactive/sql-lock.html) 中找到了一些关于表锁定的文档,但这一切似乎都是针对如何锁定一个表,而不是确保它没有锁定。
【问题讨论】:
-
等等,让我看看我是否明白这一点。有一个选项可以忽略表上的锁???如果为真,那么在验证新约束时可以选择忽略现有行,这是一个坏主意。
-
@Matthew Wood:总的来说,我倾向于同意。但是,忽略锁在某些情况下很有用,例如当您想要检查表的内容时进行调试,即使它处于非常大的更新过程中。最好忽略锁定,而不是等待几分钟/几小时以完成更新。
标签: postgresql nolock