sql >> Database teknologi >  >> RDS >> PostgreSQL

Sådan returneres en tabel efter rækketype i PL/pgSQL

Det du har indtil videre ser godt ud. Den manglende ingrediens:polymorfe typer .

CREATE OR REPLACE FUNCTION change_val(_tbl_type anyelement)
  RETURNS SETOF anyelement  -- problem solved
  LANGUAGE plpgsql AS
$func$
BEGIN
   RETURN QUERY EXECUTE format(
      'UPDATE %s SET val = 2 RETURNING *;'
     , pg_typeof(_tbl_type))
     );
END
$func$;

Ring (vigtigt):

SELECT * FROM change_val(NULL::some_tbl);

db<>fiddle her
Gamle sqlfiddle

Se (sidste afsnit):




  1. hvordan man bestiller et JSON-svar baseret på databaseforhold ved hjælp af veltalende

  2. postgresql:bestilt resultat

  3. Codeigniter-forespørgselsbygger ved hjælp af implode-funktionen i where_in

  4. sikrer sql-sætning atomicitet i postgres