2017-01-31 22 views
3

私はpgp.helpers.insertを使用して、うまく動作しているPostgreSQLにデータを保存しています。しかし、私は応答に提示する値を返す必要があります。私は使用しています:pg-promiseヘルパーを使用してクエリ結果の値を挿入する方法

this.collection.one(this.collection.$config.pgp.helpers.insert(values, null, 'branch')) 

これはデータを返しません。単純に生成されたクエリにRETURNING...句を追加

INSERT into branch (columns) VALUES (values) RETURNING pk_branchID 

答えて

2

::私は何をすることができるようにしたいことなど、成功の挿入後に分岐IDを返すです

var h = this.collection.$config.pgp.helpers; 
var query = h.insert(values, null, 'branch') + 'RETURNING pk_branchID'; 

return this.collection.one(query); 

あなたは挿入物を自動的に生成したい場合は、そこに大きなオブジェクトが必要です。 ColumnSetは静的変数として使用される場合には複数行の挿入/更新を生成する際に、名前空間helpersは、主に評価される:

var h = this.collection.$config.pgp.helpers; 
var cs = new h.ColumnSet(['col_a', 'col_b'], {table: 'branch'}); 
var data = [{col_a: 1, col_b: 2}, ...]; 

var query = h.insert(data, cs) + 'RETURNING pk_branchID'; 

return this.collection.many(query); 

注1以上の行/結果であり、この場合には、我々は、.manyを行うこと期待していたこれはさえID-Sのちょうど配列に変換することができます。

return this.collection.map(query, [], a => a.pk_branchID); 

は、以下を参照してください。Database.map

+0

ありがとうございました。もともと、私はファイル内にSQLを持っていましたが、要求から欠落している可能性があるNULL値になる可能性のある列の値を処理するために、この方法を使用すると考えました。 – Faz

関連する問題