首页 > 解决方案 > 在具有限制的 postgresql 中使用 null 更新字段

问题描述

所以我需要一个查询来使特定字段中的内容为空。这很容易,但我需要它有一个我会指定的限制。用于选择字段,LIMITFOR UPDATE SKIP LOCKED知道查询。我需要类似的东西,但带有UPDATE. 这是我带来的:

UPDATE e_message SET message = null FROM (SELECT * FROM e_message where created < :created ORDER BY :created LIMIT :limit FOR UPDATE SKIP LOCKED)

我在 java 中指定了 created 和 limit 变量。

这会起作用还是我做错了什么?

标签: sqlpostgresqlsql-update

解决方案


你快到了:

UPDATE e_message AS e
SET message = null
FROM (SELECT id FROM e_message
      where created < :created
      ORDER BY :created
      LIMIT :limit
      FOR UPDATE SKIP LOCKED) AS e2
WHERE e.id = e2.id;

推荐阅读