Tôi đang tự hỏi làm thế nào để truy vấn định nghĩa của một khung nhìn cụ thể hóa trong Postgres. Để tham khảo, những gì tôi hy vọng sẽ làm rất giống với những gì bạn có thể làm cho một chế độ xem thông thường:
SELECT * FROM information_schema.views WHERE table_name = 'some_view';
cung cấp cho bạn các cột sau:
table_catalog
table_schema
table_name
view_definition
check_option
is_updatable
is_insertable_into
is_trigger_updatable
is_trigger_deletable
is_trigger_insertable_into
Điều này có thể cho quan điểm cụ thể hóa?
Từ nghiên cứu của tôi cho đến nay, có vẻ như các quan điểm cụ thể hóa được cố tình loại trừ khỏi information_schema, bởi vì
Information_schema chỉ có thể hiển thị các đối tượng tồn tại trong tiêu chuẩn SQL.
( http://www.postgresql.org/message-id/3794,1412980686@sss.pgh.pa.us )
Vì chúng dường như bị loại trừ hoàn toàn khỏi information_schema, tôi không chắc chắn cách thực hiện điều này, nhưng điều tôi muốn làm là gấp đôi:
- Truy vấn xem một quan điểm cụ thể hóa tồn tại. (Cho đến nay, cách duy nhất tôi tìm thấy để làm điều này là thử tạo chế độ xem mat có cùng tên và xem liệu nó có nổ không.)
- Và sau đó truy vấn định nghĩa của khung nhìn cụ thể hóa (tương tự như
view_definition
cột trêninformation_schema.views
).
SELECT to_regclass('some_schema.some_mat_view')
- nếu được tìm thấy, mặc dù vậy, nó không phải là một MV. Chi tiết: stackoverflow.com/questions/20582500/ Lời