2

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

我正在使用节点 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');
    });
});

这就是我需要的

insert into tablename(column1,column2,column3) values("data1","data2","data3")
4

2 回答 2

7

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);

输出:

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

请参阅格式 API

更新

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

于 2016-03-20T03:18:01.217 回答
0

您可能希望在 PostgreSQL 中创建一个接受查询名称和参数作为参数的过程,该过程可以准备您传入的查询并使用参数执行。有一个如何在 MySQL 中执行此操作的示例,请在下面找到。

如何在 MySQL 存储过程中使用动态 SQL

http://dev.mysql.com/doc/refman/5.7/en/sql-syntax-prepared-statements.html

于 2016-03-19T11:48:30.083 回答