sql >> Database >  >> RDS >> PostgreSQL

Hoe u resultaatwaarden voor invoegquery's kunt retourneren met behulp van pg-promise-helpers

Voeg gewoon de RETURNING... . toe clausule toe aan de gegenereerde vraag:

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

return this.collection.one(query);

U moet daar een groot object hebben als u de invoeging automatisch wilt genereren. Naamruimte helpers wordt meestal gewaardeerd bij het genereren van inserts/updates met meerdere rijen, in welk geval een Kolomset wordt gebruikt als een statische variabele:

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

Merk op dat we in dit geval .many doen , aangezien 1 of meer rijen/resultaten terug worden verwacht. Dit kan zelfs worden omgezet in slechts een array van id-s:

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

zie:Database.map




  1. Transformeer tijdstempel naar lokale tijd voor een bepaalde tijdzone tijdens 'COPY .. TO ..'

  2. Oracle SQL-instructie dynamische schemavariabele

  3. Importeer OSM-bestand naar PostGis op Windows10

  4. ('De SQL bevat 0 parametermarkeringen, maar er zijn 50 parameters opgegeven', 'HY000') of TypeError:'tuple' object kan niet worden aangeroepen