PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

So geben Sie Ergebniswerte von Einfügeabfragen mithilfe von pg-promise-Helfern zurück

Hängen Sie einfach den RETURNING... an -Klausel zur generierten Abfrage:

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

return this.collection.one(query);

Sie müssen dort ein großes Objekt haben, wenn Sie die Einfügung automatisch generieren möchten. Namespace Helfer wird meistens geschätzt, wenn mehrzeilige Einfügungen/Aktualisierungen generiert werden, in diesem Fall ein Spaltensatz wird als statische Variable verwendet:

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

Beachten Sie, dass wir in diesem Fall .many verwenden , da 1 oder mehr Zeilen/Ergebnisse zurück erwartet werden. Dies kann sogar in nur ein Array von IDs umgewandelt werden:

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

siehe:Database.map