在Postgres中,将值数组用于INSERT

cc年轻

有一个值数组。我希望将它们每个都插入作为记录(如果尚不存在)。可以在SQL中的一条语句完成

传统的javascript方法:

[4,5,8] forEach(x => queryParams(
   插入t1(c1)值($ 1)
   不存在的地方(从t1中选择1,其中c1 = $ 1`,
   [X]
);

理想的情况是

queryParams(
 “这里有些花哨的SQL”,
 [`{$ {join [4,5,8]}}`]]
);

造成这种情况的原因很多,包括限制服务器往返和事务的成本。

杰森w

您可以使用相关子查询来查找不符合条件的值:

INSERT INTO Records (X)
    SELECT X
    FROM unnest(ARRAY[4,5,8]) T (X)
    WHERE NOT EXISTS (SELECT * FROM Records WHERE X = T.X);

SQL小提琴:http ://sqlfiddle.com/#!15/e0334/29/0

上面编辑使用 unnest

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将聚合函数应用于Postgres中的数组字段?

来自分类Dev

Postgres SELECT其中数组中的值

来自分类Dev

在postgres中按数组值查询列

来自分类Dev

如何将JSON转换为可用于绑定下拉列表中的值的数组?

来自分类Dev

如何根据条件有效地将函数应用于数组中的值?

来自分类Dev

清理函数将值应用于 Ramda 中的函数数组

来自分类Dev

Postgres:将列聚合到数组中

来自分类Dev

将dom-if用于数组中的条件

来自分类Dev

将值推入JavaScript中的数组数组

来自分类Dev

将数组中的数组值添加到数组值

来自分类Dev

将函数应用于NumPy数组的唯一值

来自分类Dev

将公式应用于特定的numpy数组值

来自分类Dev

Postgres 中的数组数组

来自分类Dev

Postgres jsonb_insert数组

来自分类Dev

Vlookup用于值数组

来自分类Dev

ActiveRecord 检查数组中的任何值是否与带有 postgres 的数组中的值匹配

来自分类Dev

Postgres-从json数组中删除NULL值

来自分类Dev

Postgres SQL数组根据条件汇总单个表中的值

来自分类Dev

选择Postgres中所有数组中存在的值

来自分类Dev

从 postgres 中的对象数组插入唯一值

来自分类Dev

将查询中的值放入数组

来自分类Dev

将值存储在数组中

来自分类Dev

将中间值存储在numpy数组中

来自分类Dev

将DataFrame中的数组更改为值

来自分类Dev

无法将值存储在数组中

来自分类Dev

将数组中的每个值加倍

来自分类Dev

将值推入D中的数组

来自分类Dev

将PHP中的数组与值组合

来自分类Dev

PHP将值连接到数组中