PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como retornar valores de resultado de consulta de inserção usando auxiliares pg-promise


Basta anexar o RETURNING... cláusula para a consulta gerada:
var h = this.collection.$config.pgp.helpers;
var query = h.insert(values, null, 'branch') + 'RETURNING pk_branchID';

return this.collection.one(query);

Você deve ter um objeto grande lá se quiser gerar a inserção automaticamente. Namespace ajudantes é valorizado principalmente ao gerar inserções/atualizações de várias linhas; nesse caso, um Conjunto de colunas é usado como uma variável estática:
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);

Observe que, neste caso, fazemos .many , pois 1 ou mais linhas/resultados são esperados de volta. Isso pode até ser transformado em apenas uma matriz de id-s:
return this.collection.map(query, [], a => a.pk_branchID);

veja:Database.map