sql >> Databáze >  >> RDS >> PostgreSQL

Jak vrátit hodnoty výsledků dotazu vložení pomocí pomocníků pg-promise

Jednoduše připojte RETURNING... klauzule k vygenerovanému dotazu:

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

return this.collection.one(query);

Pokud chcete automaticky vygenerovat vložku, musíte tam mít velký objekt. Jmenný prostor pomocníci se většinou cení při generování víceřádkových vložení/aktualizací, v takovém případě ColumnSet se používá jako statická proměnná:

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

Všimněte si, že v tomto případě děláme .many , protože se očekává 1 nebo více řádků/výsledků zpět. To lze dokonce přeměnit na pouhé pole id:

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

viz:Database.map




  1. Problémy s připojením k serveru mysql:ERROR 2003 (HY000)

  2. Míchání Spojte se, vnitřní spojení a součet s Oracle

  3. vypočítat průměr bez desetinných míst

  4. Alternativa k PDO::lastInsertId / mysql_insert_id