PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come restituire i valori dei risultati delle query di inserimento utilizzando gli helper pg-promise

Aggiungi semplicemente il RETURNING... clausola alla query generata:

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

return this.collection.one(query);

Devi avere un oggetto grande lì se vuoi generare automaticamente l'inserto. Spazio dei nomi aiutanti viene valutato principalmente quando si generano inserimenti/aggiornamenti a più righe, nel qual caso un Colonna viene utilizzata come variabile statica:

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

Tieni presente che in questo caso eseguiamo .many , poiché sono previste 1 o più righe/risultati. Questo può anche essere trasformato in un semplice array di ID:

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

vedere:Database.map