Tôi đang tạo nhiều chế độ xem trong mã của mình và mỗi khi mã được chạy, tôi muốn bỏ tất cả các chế độ xem được tạo ra từ trước đến nay. Có lệnh nào sẽ liệt kê tất cả các khung nhìn vật chất hóa cho Postgres hay thả tất cả chúng?Có lệnh postgres để liệt kê/xóa tất cả các chế độ xem được thực hiện không?
Trả lời
Hiện tất cả:
SELECT oid::regclass::text
FROM pg_class
WHERE relkind = 'm';
Names sẽ được tự động thoát và schema-đủ tiêu chuẩn theo hiện search_path
của bạn khi cần thiết trong các diễn viên regclass
-text
.
Chế độ xem vật lý trong danh mục hệ thống pg_class
được xác định theo relkind = 'm'
.
Per documentation:
m = materialized view
Để thả tất cả, bạn có thể tạo ra các kịch bản SQL cần thiết với truy vấn này:
SELECT 'DROP MATERIALIZED VIEW ' || string_agg(oid::regclass::text, ', ')
FROM pg_class
WHERE relkind = 'm';
Returns:
DROP MATERIALIZED VIEW mv1, some_schema_not_in_search_path.mv2, ...
Một DROP MATERIALIZED VIEW
tuyên bố có thể chăm sóc nhiều quan điểm vật hoá. Bạn có thể cần phải thêm CASCADE
vào cuối nếu bạn có chế độ xem lồng nhau.
Kiểm tra tập lệnh DDL kết quả để chắc chắn trước khi thực thi. Bạn có chắc chắn muốn bỏ tất cả tất cả MV từ tất cả các lược đồ trong db? (Hiện tại không có quan điểm trong một cài đặt chuẩn tươi thành hiện thực.)
này sẽ dễ dàng hơn nếu bạn muốn có được một danh sách đầy đủ các câu lệnh DROP trước mỗi view:
SELECT 'DROP MATERIALIZED VIEW ' || relname || ';'
FROM pg_class
WHERE relkind = 'm';
này một câu trả lời dựa trên câu trả lời từ Erwin Brandstetter. Phiên bản bên dưới thêm một tên lược đồ cụ thể để chỉ truy xuất các khung nhìn vật chất từ một lược đồ đã định nghĩa. Cascasde cũng giảm sự phụ thuộc vào các khung nhìn vật chất hóa từ lược đồ đó. Hãy cẩn thận với điều đó.
SELECT 'DROP MATERIALIZED VIEW <<schema_name>>.' || c.relname::text || ' CASCADE;' AS drop_statements
FROM pg_class c
INNER JOIN pg_namespace n ON n.oid = c.relnamespace
AND c.relkind = 'm'
AND n.nspname = '<<schema_name>>'
- 1. Thực hiện chế độ xem (được khởi tạo từ initWithNibName) tải tất cả subview của nó
- 2. Backbone.js - Xóa tất cả các chế độ xem phụ
- 3. Psql liệt kê tất cả các bảng
- 4. Chế độ Viper ở tất cả các chế độ
- 5. git liệt kê tất cả các lệnh có sẵn
- 6. Đặt GestureDetector cho tất cả các chế độ xem con
- 7. truy vấn postgres để liệt kê tất cả các tên bảng
- 8. Chúng tôi có thể xem tất cả các chế độ xem chú thích từ MKMapView
- 9. Xóa tất cả chế độ xem trẻ em khỏi chế độ xem
- 10. Lặp qua tất cả các bản xem trước của chế độ xem Android?
- 11. Liệt kê tất cả các lớp KHÔNG CÓ Javadocs
- 12. Trong Flask, tại sao tất cả các chế độ xem được hiển thị trong một tệp?
- 13. hiển thị tất cả các bảng không trống trong postgres
- 14. Có lệnh nào trong R để xem tất cả các chức năng có trong gói không?
- 15. Làm mới tất cả chế độ xem trong Android?
- 16. Dữ liệu có sẵn cho tất cả các chế độ xem trong mã vạch
- 17. Tập lệnh Bash để thực hiện lệnh trên tất cả các tệp trong một thư mục
- 18. cách kiểm tra xem đăng ký có được tải tất cả các hàng hiện có không?
- 19. Liệt kê tất cả các hội đồng .NET có sẵn
- 20. Monotouch: Xóa tất cả các bản xem trước khỏi một chế độ xem
- 21. Liệt kê tất cả URL kho SVN từ một thư mục ở chế độ đệ quy
- 22. Chế độ xem bảng Javafx không hiển thị dữ liệu trong tất cả các cột
- 23. Liệt kê tất cả các kho SVN
- 24. Liệt kê tất cả các bảng hiện đang được xuất bản để sao chép MS-SQL
- 25. Liệt kê tất cả virtualenv
- 26. Tại sao tính năng bảo mật cấp hàng không được bật cho chế độ xem Postgres?
- 27. Làm cách nào để chặn hiển thị chế độ xem để thêm HTML/JS trên tất cả các chế độ xem một phần?
- 28. Có cách nào để kiểm tra xem chế độ nghiêm ngặt có được thực thi không?
- 29. Sự kiện nào được kích hoạt sau khi tất cả các chế độ xem được vẽ hoàn toàn?
- 30. Chế độ xem MVC có thể truy cập tất cả các dự án ngay cả khi chúng không được tham chiếu bởi dự án mà các chế độ xem không?
Có lẽ một lỗi đánh máy trên - trong PG của tôi, thứ 3 niêm yết trên nên bắt đầu: SELECT 'thả cụ thể hóa XEM' ... –
@MichaelTerry: Vâng, tôi đã lang thang ra khỏi chủ đề quan điểm. Cảm ơn, cố định. –
cũng giống như một lưu ý phụ bạn có thể sử dụng lệnh pg quick \ dm để chỉ nhận danh sách các chế độ xem của bạn từ ứng dụng khách cli. – lbrindze