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

Sådan returneres insert-forespørgselsresultatværdier ved hjælp af pg-promise-hjælpere

Du skal blot tilføje koden RETURNING... klausul til den genererede forespørgsel:

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

return this.collection.one(query);

Du skal have et stort objekt der, hvis du automatisk vil generere indsatsen. Navneområde hjælpere er for det meste værdsat, når der genereres multi-row inserts/opdateringer, i hvilket tilfælde en ColumnSet bruges som en statisk variabel:

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

Bemærk, at i dette tilfælde gør vi .many , da 1 eller flere rækker/resultater forventes tilbage. Dette kan endda omdannes til blot en række id-er:

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

se:Database.map




  1. Oprettelse af en virtuel maskine med Oracle VM Virtual Box

  2. PHP/MYSQL Hent navn baseret på et andet kriterium

  3. MySQL definerer kolonne som UNIQUE med AUTO_INCREMENT i stedet for som Primary Key

  4. Hvad skal jeg ellers gøre for at rense brugerinput?