PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Cách trả về bảng theo kiểu hàng trong PL / pgSQL

Những gì bạn có cho đến nay có vẻ tốt. Thành phần bị thiếu: loại đa hình .

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

Gọi (quan trọng):

SELECT * FROM change_val(NULL::some_tbl);

db <> fiddle tại đây
sqlfiddle

Xem (đoạn cuối):




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. THAM GIA LEFT OUTER trên cột mảng có nhiều giá trị

  2. sqlalchemy, lọc một cột json chứa một mảng

  3. Toán tử PostgreSQL IN với hiệu suất kém truy vấn con

  4. Hai cột trong truy vấn con trong mệnh đề where

  5. ĐẶT HÀNG THEO danh sách giá trị IN