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

Trả về nhiều giá trị trong một hàm

Bạn đang quá phức tạp hóa mọi thứ. Khi bạn muốn trả về nhiều giá trị, bạn cần xác định hàm dưới dạng returns table hoặc returns setof . Tôi thích returns table vì nó cũng cho phép bạn xác định tên cột của kết quả.

Bạn cũng không cần PL / pgSQL cho việc này, một hàm SQL thuần túy có UPDATE tuyên bố là đủ:

CREATE OR REPLACE FUNCTION assign_task(IN worker text)
  returns table (id bigint)
as
$BODY$
 UPDATE queue
  SET status = 'In progress', worker = $1
  WHERE status = 'New'
  RETURNING queueid;
$BODY$
LANGUAGE sql VOLATILE;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các chế độ xem PostgreSQL security_barrier hoạt động như thế nào?

  2. Rails ActiveRecord kết nối với cơ sở dữ liệu Postgres sai

  3. 3 cách liệt kê tất cả các thủ tục được lưu trữ tham chiếu đến một bảng trong PostgreSQL

  4. Gán tổng giá trị của tháng cho từng ngày trong tháng

  5. Các khóa ngoại giới thiệu các khóa ngoại khác trong PostgreSQL