postgresql - libpq 是否支持与 Oracle 的数组绑定等效的东西?
问题描述
Oracle 有一些他们称之为数组绑定的东西(来自 docs),其中发送的 SQL 可能UPDATE mytable SET val = :2 WHERE id = :1
与包含内容的数组绑定一起:
1 | val1
2 | val2
3 | val3
(PS。数组的大小> 1000项,3项用于说明。)
这是有效的,并且在服务器的单次往返中完成。
这也可以使用 libpq 吗?
解决方案
如果您的意图是尽量减少往返,那么您可以执行以下操作:
UPDATE mytable m
SET val = t.val
from (
values (:1, :2), (:3, :4), (:5, :6), ....
) as t(id,val)
WHERE t.id = m.id;
推荐阅读
- java - 如何从树中取消链接元素
- apache-spark - 蜂巢表属性中“parquet.compress”和“parquet.compression”之间的区别
- algolia - InstantSearch.js 自定义小部件增加返回结果
- android - 如何保存谷歌登录集成 Firebase
- javascript - 如何进行良好的验证?
- javascript - 使用 sequelize ORM 从 postgres timestampz 获取微秒
- c# - 是否可以清除保存过程(EF/AutoMapping)?
- android - 实施故事回复,如 Instagram Android
- python - 为什么这些字段没有在 django 中弹出
- azure - 如何使用脚本启用/禁用 blob 服务上的静态网站