相关疑难解决方法(0)

具有pg-promise的多行插入

我想用一个INSERT查询插入多行,例如:

INSERT INTO tmp(col_a,col_b) VALUES('a1','b1'),('a2','b2')...
Run Code Online (Sandbox Code Playgroud)

有没有办法轻松地做到这一点,最好是这样的对象数组:

[{col_a:'a1',col_b:'b1'},{col_a:'a2',col_b:'b2'}]
Run Code Online (Sandbox Code Playgroud)

我可能最终在一个块中有500条记录,因此运行多个查询是不可取的.

到目前为止,我只能为一个对象做到这一点:

INSERT INTO tmp(col_a,col_b) VALUES(${col_a},${col_b})
Run Code Online (Sandbox Code Playgroud)

作为一个附带问题:使用${}符号的插入是否可以防止SQL注入?

postgresql node.js pg-promise

28
推荐指数
1
解决办法
2万
查看次数

Node.js 中的 PostgreSQL 多行更新

正如我已经在 Stackoverflow 上找到的那样,可以通过执行以下操作来更新一个查询中的多行

update test as t set
    column_a = c.column_a,
    column_c = c.column_c
from (values
    ('123', 1, '---'),
    ('345', 2, '+++')  
) as c(column_b, column_a, column_c) 
where c.column_b = t.column_b;
Run Code Online (Sandbox Code Playgroud)

特别感谢@Roman Pekar 的明确答复。

现在我正在尝试将这种更新方式与查询 NodeJS 中的 postgreSQL 数据库合并。

这是我的代码片段:

var requestData = [
    {id: 1, value: 1234}
    {id: 2, value: 5678}
    {id: 3, value: 91011}
]


client.connect(function (err) {
    if (err) throw err;

client.query(buildStatement(requestData), function (err, result) {
    if (err) throw err;

    res.json(result.rows);

    client.end(function (err) {
        if …
Run Code Online (Sandbox Code Playgroud)

postgresql node.js

5
推荐指数
1
解决办法
4962
查看次数

标签 统计

node.js ×2

postgresql ×2

pg-promise ×1