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

TẠO CHẾ ĐỘ XEM chỉ định nhiều tên cột hơn cột

Hãy xem xét ví dụ đơn giản:

postgres=# create function foofunc() returns table(a int, b text) language sql as $$ select 1, 'a'::text $$;
postgres=# select foofunc();
╔═════════╗
║ foofunc ║
╠═════════╣
║ (1,a)   ║
╚═════════╝

Khi một hàm được gọi trong ngữ cảnh cột / biến, nó trả về một giá trị duy nhất của kiểu trả về được chỉ định. Đây là nguồn gốc của lỗi:select của chế độ xem chỉ trả về một cột.

Tuy nhiên, nếu hàm được gọi trong ngữ cảnh bảng thì nó trả về các giá trị giống như một bảng true:

postgres=# select * from foofunc();
╔═══╤═══╗
║ a │ b ║
╠═══╪═══╣
║ 1 │ a ║
╚═══╧═══╝

Vì vậy, bạn nên sử dụng cách tiếp cận thứ hai khi tạo chế độ xem:

CREATE VIEW v1 (c1, c2, c3, c4, c5) AS
  SELECT * FROM f1 (1, 2);



  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ông bố repmgr 2.0

  2. Di chuyển cột văn bản / bytea PostgreSQL sang đối tượng lớn?

  3. Tìm tên máy chủ PostgreSQL mà nó chạy trên đó

  4. Chương trình phụ trợ lưu trữ ảnh hưởng đến Datomic như thế nào?

  5. Cách cập nhật hàng loạt ID chuỗi postgreSQL cho tất cả các bảng