PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment renvoyer les valeurs de résultat de la requête d'insertion à l'aide des assistants pg-promise

Ajoutez simplement le RETURNING... clause à la requête générée :

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

return this.collection.one(query);

Vous devez y avoir un gros objet si vous voulez générer automatiquement l'insert. Espace de noms aides est principalement apprécié lors de la génération d'insertions/mises à jour multi-lignes, auquel cas un Ensemble de colonnes est utilisé comme variable statique :

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

Notez que dans ce cas, nous faisons .many , car 1 ou plusieurs lignes/résultats sont attendus. Cela peut même être transformé en un simple tableau d'identifiants :

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

voir :Database.map