sql - 在具有限制的 postgresql 中使用 null 更新字段
问题描述
所以我需要一个查询来使特定字段中的内容为空。这很容易,但我需要它有一个我会指定的限制。用于选择字段,LIMIT
我FOR 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 变量。
这会起作用还是我做错了什么?
解决方案
你快到了:
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;
推荐阅读
- html - 用 selenium、python 解析“进一步阅读”
- hibernate - 如何在 Spring Data JPA 中更新 @OnetoMany 关系中的子实体
- javascript - 我有一个接受回调作为参数的映射方法,但我不断收到此错误 JavaScript
- java - 是否可以使用非无效的设置器反序列化 yaml 文档?
- php - 来自 PDO 查询的数据不返回任何内容 - 突然停止工作
- android - 接收推送消息时如何设置通知标头?
- javascript - 如何将 javascript 数组发送到 Spring MVC 控制器
- c++ - Visual Studio 2019 中不允许成员重新声明(在 VS 2013 中成功编译的相同代码)
- python - 创建条形图
- json - 转换 JSON 消息的最佳实践