我无法真正理解https://www.postgresql.org/docs/9.1/static/explicit-locking.html 中的示例
他们将锁与 SELECT 子句一起嵌入的位置
SELECT pg_advisory_lock(id) FROM foo WHERE id = 12345; -- ok
它从什么中选择FOO?如果是这样,我会更好地理解
SELECT pg_advisory_lock(123); //lock
SELECT * FROM foo WHERE id = 12345;
Run Code Online (Sandbox Code Playgroud)
它明确锁定块的地方。我似乎无法在任何地方找到关于如何真正使用咨询锁的解释来解释 Embedding 和 Explicitly 之间的区别。
这样做SELECT pg_advisory_lock(123);会在 上创建一个锁123,无论它是否是一个有效的值。这样做SELECT pg_advisory_lock(id) FROM foo WHERE id = 123;只是如果在表foo的ID 123的条目将创建锁。
让我们注意在pg_locks doc 中找到的行:
按键的实际含义由用户决定
这往往意味着 select/from/where 语法用于将锁关联到现有行,而单独选择语法用于更广泛的含义,如应用程序范围的锁。
| 归档时间: |
|
| 查看次数: |
608 次 |
| 最近记录: |