Tworzę wiele widoków w moim kodzie i za każdym razem, gdy kod jest uruchamiany, chciałbym upuścić wszystkie zmaterializowane widoki wygenerowane do tej pory. Czy jest jakieś polecenie, które wyświetli wszystkie zmaterializowane widoki PostgreSQL lub zrzuci je wszystkie?Czy istnieje polecenie postgres do listy/upuszczenia wszystkich zmaterializowanych widoków?
Odpowiedz
Pokaż wszystkie:
SELECT oid::regclass::text
FROM pg_class
WHERE relkind = 'm';
Nazwy są automatycznie uciekł i schemat zakwalifikowanych według aktualnej search_path
razie potrzeby w obsadzie od regclass
do text
.
Materializowane widoki w katalogu systemowym pg_class
są identyfikowane przez relkind = 'm'
.
Per documentation:
m = materialized view
Aby spadek wszystkim, można wygenerować potrzebne skrypt SQL z tego zapytania:
SELECT 'DROP MATERIALIZED VIEW ' || string_agg(oid::regclass::text, ', ')
FROM pg_class
WHERE relkind = 'm';
Powroty:
DROP MATERIALIZED VIEW mv1, some_schema_not_in_search_path.mv2, ...
Jeden DROP MATERIALIZED VIEW
oświadczenie może dbać o wiele zmaterializowanych widoków. Może być konieczne dodanie na końcu CASCADE
, jeśli masz widoki zagnieżdżone.
Sprawdź wynikowy skrypt DDL, aby upewnić się przed jego wykonaniem. Czy jesteś pewien, że chcesz upuścić wszystkie MV z ze wszystkich schematów w db? (Obecnie nie istnieją zmaterializowane perspektywy w instalacji standardowej świeżego.)
Byłoby to łatwiejsze, jeśli chcesz uzyskać pełną listę ze stwierdzeniem spadku przed każdym zdaniem:
SELECT 'DROP MATERIALIZED VIEW ' || relname || ';'
FROM pg_class
WHERE relkind = 'm';
Ta odpowiedź opiera się na odpowiedzi z Erwin Brandstetter. Poniższa wersja dodaje określoną nazwę schematu, aby pobierać zmaterializowane widoki z określonego schematu. Cascasde również zmniejsza zależności od zmaterializowanych widoków z tego schematu. Ostrożnie z tym.
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. Strategia odświeżania zmaterializowanych widoków w hurtowni danych
- 2. Postgres kwerendy do listy wszystkich nazw tabel
- 3. Czy istnieje skrypt do generowania pliku migracji SQL (postgres)?
- 4. Wyliczanie/iterowanie wszystkich widoków w działaniu?
- 5. Czy istnieje polecenie zwrócenia właściciela pliku?
- 6. Zatrzymaj Androida przed układaniem wszystkich widoków
- 7. Czy JPA obsługuje mapowanie do widoków sql?
- 8. Polecenie do rekurencyjnego usunięcia wszystkich katalogów .svn w systemie Windows
- 9. Usuwanie wszystkich widoków podrzędnych z widoku
- 10. Umieść UIView na górze wszystkich innych widoków.
- 11. Niestandardowy odpowiednik odpowiednika dla wszystkich częściowych widoków
- 12. nie można utworzyć postgres użytkownika: rola "postgres" nie istnieje
- 13. Xcode 8.1 - Jak zaktualizować ramki do wszystkich widoków w scenorysie?
- 14. AngularJS: Powiązanie wszystkich widoków częściowych/szablonów do produkcji
- 15. Jak zastosować dekorator do wszystkich widoków (modułu) w django
- 16. Czy istnieje sposób renderowania częściowych widoków w WebForms?
- 17. UICollectionView: Czy istnieje sposób na przeładowanie tylko widoków dodatkowych?
- 18. Polecenie Redis do listy wszystkich subskrybentów zasubskrybowanych do kanału redis
- 19. Czy istnieje sposób listy wszystkich powiązań do obiektu Ember.Object?
- 20. Czy istnieje sposób .NET do wyliczenia wszystkich dostępnych drukarek sieciowych?
- 21. Czy istnieje automatyczny sposób wyszukiwania nieużywanych widoków w MVC?
- 22. Czy istnieje sposób generowania rusztowania szyn bez widoków?
- 23. Utworzenie bazy danych Postgres, jeśli nie istnieje
- 24. sposób pobierania wszystkich widocznych widoków nagłówków sekcji tabeli
- 25. Czy istnieje sposób uruchamiania polecenia na wszystkich dynamach Heroku?
- 26. Polecenie do ponownego uruchamiania wszystkich uruchomionych kontenerów doków?
- 27. Czy istnieje polecenie dwukropka ghci, aby ukryć paczkę?
- 28. Czy istnieje polecenie wstawiania linii znaków w Sublime Text 2?
- 29. Angular ui router wiele nazwanych widoków dla wszystkich stanów
- 30. Czy istnieje polecenie trybu org w Emacs, aby przejść do nagłówka org?
Prawdopodobnie literówka wyżej - moim PG, 3. wykaz powyżej powinien rozpocząć się: SELECT „DROP widok zmaterializowany” ... –
@MichaelTerry: Tak, byłem wędrówki off temat poglądów. Dzięki, naprawione. –
tak jak na marginesie, możesz użyć polecenia pg quick \ dm, aby wyświetlić listę swoich widoków z klienta cli. – lbrindze