sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur man returnerar en tabell efter radtyp i PL/pgSQL

Det du har hittills ser bra ut. Den saknade ingrediensen:polymorfa 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 (viktigt):

SELECT * FROM change_val(NULL::some_tbl);

db<>fiol här
Gammal sqlfiddle

Se (sista stycket):




  1. ALTER TABLE DROP COLUMN misslyckades eftersom ett eller flera objekt har åtkomst till den här kolumnen

  2. Använda SQL Views för att lägga till/redigera data i Microsoft Access

  3. PHP:Varning:sort() förväntar sig att parameter 1 är array, resurs given

  4. Ersätt NonASCII-tecken i MYSQL