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

Khai báo biến loại hàng trong PL / pgSQL

Một cách:sử dụng bản ghi record biến:

DO $$
DECLARE
   _rec record;
BEGIN
SELECT INTO _rec
            id, name, surname FROM t WHERE id = ?;
END $$;

Lưu ý rằng cấu trúc của record loại không được xác định cho đến khi được chỉ định. Vì vậy, bạn không thể tham chiếu các cột (trường) trước khi làm điều đó.

Một cách khác:gán nhiều biến vô hướng:

DO $$
DECLARE
   _id int;
   _name text;
   _surname text;
BEGIN
SELECT INTO _id, _name, _surname
             id,  name,  surname FROM t WHERE id = ?;
END $$;

Đối với ví dụ đầu tiên của bạn:%ROWTYPE chỉ là tiếng ồn ở Postgres. Tài liệu :

Vì vậy:

DO $$
DECLARE
   my_data t;  -- table name serves as type name, too. 
BEGIN
   SELECT INTO my_data  * FROM t WHERE id = ?;
END $$;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để cung cấp một mật khẩu cho không tương tác được tạo của PostgreSQL?

  2. Cách Round () hoạt động trong PostgreSQL

  3. PostgreSQL 12:Khóa ngoại và bảng phân vùng

  4. PostgreSQL:Tạo chỉ mục cho cột boolean

  5. Mối quan hệ nhiều-nhiều để xác định xem người dùng có thích một bài đăng hay không