sql >> Database >  >> RDS >> PostgreSQL

Een tabel per rijtype retourneren in PL/pgSQL

Wat je tot nu toe hebt ziet er goed uit. Het ontbrekende ingrediënt:polymorfe typen .

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

Bel (belangrijk):

SELECT * FROM change_val(NULL::some_tbl);

db<>fiddle hier
Oude sqlfiddle

Zie (laatste alinea):




  1. ANDROID&PHP - Hoe JSONArray van MySql weer te geven met behulp van PHP

  2. Vereist Oracle's PS/SQL een specifieke volgorde van vermeldingen in de `declare`-sectie van een blok?

  3. Waarvoor dient de socketdeclaratie in Ruby on Rails database.yml?

  4. een vergrendelde tafel hernoemen