sql >> Databasteknik >  >> RDS >> PostgreSQL

Så här returnerar du insert-frågeresultatvärden med hjälp av pg-promise-hjälpare

Lägg bara till RETURNING... klausul till den genererade frågan:

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

return this.collection.one(query);

Du måste ha ett stort objekt där om du automatiskt vill generera insatsen. Namnutrymme hjälpare värderas mest vid generering av inlägg/uppdateringar med flera rader, i vilket fall en ColumnSet används 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);

Observera att i det här fallet gör vi .many , eftersom 1 eller fler rader/resultat förväntas tillbaka. Detta kan till och med omvandlas till bara en rad id-s:

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

se:Database.map




  1. Sammanfoga 2 tabeller med främmande nyckel-id

  2. Räkna alla underordnade noder av hierarkiska data i en tabell

  3. ORA-01591 - oracle radera data från fjärr-sql-servertabellen

  4. datetime vs datetimeoffset i SQL Server:Vad är skillnaden?