sql >> Base de Datos >  >> RDS >> PostgreSQL

Cómo devolver valores de resultado de consulta de inserción usando ayudantes de pg-promise

Simplemente agregue el RETURNING... cláusula a la consulta generada:

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

return this.collection.one(query);

Debe tener un objeto grande allí si desea generar automáticamente la inserción. Espacio de nombres ayudantes se valora principalmente cuando se generan inserciones/actualizaciones de varias filas, en cuyo caso un Conjunto de columnas se utiliza como una variable 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);

Tenga en cuenta que en este caso hacemos .many , ya que se esperan 1 o más filas/resultados. Esto incluso se puede transformar en solo una matriz de id-s:

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

consulte:Database.map