postgres:从带有参数的查询中获取可执行查询

vij*_*jay 1 postgresql node-postgres

有没有办法从带有$参数的查询中获取可执行查询。实际上它很奇怪,但是我想在数据库中存储可执行查询。没有参数的完整查询($ 1,$ 2,$ 3)

我正在使用node-postgres

pg.connect(conString, function(err, client, done) {

console.log('Executing Insert query');

client.query('insert into tablename(column1,column2,column3) values($1,$2,$3)',["data1","data2","data3"],  function(err, result) {

    done();

    console.log('finished executing Insert query');
    });
});
Run Code Online (Sandbox Code Playgroud)

这就是我所需要的

insert into tablename(column1,column2,column3) values("data1","data2","data3")
Run Code Online (Sandbox Code Playgroud)

vit*_*y-t 5

pg-promise具有查询格式化引擎,可以独立于查询使用。

const pgp = require('pg-promise')(/* Initialization Options */);

const query = pgp.as.format('INSERT INTO table(column1,column2,column3) VALUES($1,$2,$3)',
    ["data1", "data2", "data3"]);

console.log(query);
Run Code Online (Sandbox Code Playgroud)

输出:

INSERT INTO table(column1,column2,column3) VALUES('data1','data2','data3')

请参阅格式API

更新

有关单个INSERT查询的高性能方法,请参见使用pg-promise进行多行插入