【发布时间】:2019-09-07 00:26:18
【问题描述】:
我正在尝试它插入一个简单的数字数组作为 PostgreSQL 表的不同行。
比如我要插入:
const arr = [1.1, 2.0, 3.40, 4.5, -5];
以便表“numeric_values_list”填充到:
id | val
--------
1 | 1.1
2 | 2.0
3 | 3.40
4 | 4.5
5 | -5.6
使用 psql 终端,我可以得到这个查询以产生所需的结果:
INSERT INTO numeric_values_list(val)
SELECT * FROM UNNEST (ARRAY[1.1, 2.0, 3.40, 4.5, -5]);
但是,我无法找出将产生相同结果的 postgres-pg 查询字符串的正确语法。以下对我不起作用:
const list = [1.1, 2.0, 3.40, 4.5, -5];
// version 1
db.query('INSERT INTO numeric_values_list(val) SELECT * FROM UNNEST($1)', list)
// version 2
db.query('INSERT INTO numeric_values_list(val) SELECT * FROM UNNEST($1::numeric[])', list)
// version 3
db.query('INSERT INTO numeric_values_list(val) SELECT * FROM UNNEST($1::[])', list)
// version 4
db.query('INSERT INTO numeric_values_list(val) SELECT * FROM UNNEST ARRAY[($1)]', list)
我的问题是如何使用 pg-promise 库让它工作?
非常感谢。
【问题讨论】:
-
使用pg-promise,您可以简单地使用csv 过滤器,它会起作用;)
-
哦,真漂亮。如果您想将评论移至答案,我会检查它是否正确。