PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak zwrócić tabelę według typu wiersza w PL/pgSQL?

To, co masz do tej pory, wygląda dobrze. Brakujący składnik:typy polimorficzne .

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

Zadzwoń (ważne):

SELECT * FROM change_val(NULL::some_tbl);

db<>fiddle tutaj
Stary sqlfiddle

Zobacz (ostatni akapit):




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nie można wyeksportować tabeli AWS RDS Postgres do CSV w S3 przy użyciu funkcji aws_s3.query_export_to_s3

  2. Wstaw dane do Postgresql ze zduplikowanymi wartościami

  3. Jak w Postgresie ograniczyć możliwe wartości dla określonej kolumny?

  4. Postgres/psycopg2 - Wstawianie tablicy ciągów

  5. Mieszanie sprzężeń jawnych i niejawnych kończy się niepowodzeniem z Istnieje wpis dla tabeli ... ale nie można się do niego odwoływać z tej części zapytania