sql >> Database >  >> RDS >> PostgreSQL

Een ResultSet doorgeven aan een Postgresql-functie

Je zou een cursor kunnen gebruiken , maar dat is erg onpraktisch voor het berekenen van een minimum.

Ik zou een tijdelijke tabel gebruiken voor dat doel, en geef de tabelnaam door voor gebruik in dynamische SQL :

CREATE OR REPLACE FUNCTION f_min_id(_tbl regclass, OUT min_id int) AS 
$func$
BEGIN

EXECUTE 'SELECT min(id) FROM ' || _tbl
INTO min_id;

END  
$func$ LANGUAGE plpgsql;

Bel:

CREATE TEMP TABLE foo ON COMMIT DROP AS
SELECT id, name
FROM   users
LIMIT  50;

SELECT f_min_id('foo');

Belangrijkste punten

-> SQLfiddle-demo



  1. Laravel - Ongeldig parameternummer:parameter is niet gedefinieerd

  2. Postgresql GROUP_CONCAT equivalent?

  3. Wat is de snelste manier om 150 miljoen updates toe te passen op de PostgreSQL-tabel?

  4. Django implementeren in Heroku (Psycopg2-fout)