Sto creando più viste nel mio codice e ogni volta che si esegue il codice, vorrei eliminare tutte le viste materializzate generate finora. Esiste un comando che elenca tutte le visualizzazioni materializzate per Postgres o le cancella tutte?Esiste un comando postgres per elencare/eliminare tutte le viste materializzate?
risposta
Mostra tutti:
SELECT oid::regclass::text
FROM pg_class
WHERE relkind = 'm';
I nomi sono sfuggiti automaticamente e lo schema qualificato secondo la vostra corrente search_path
, ove necessario, nel cast regclass
-text
.
Le viste materializzate nel catalogo di sistema pg_class
sono identificate da relkind = 'm'
.
Per documentation:
m = materialized view
Per goccia tutto, è possibile generare lo script SQL necessario con questa query:
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, ...
Uno DROP MATERIALIZED VIEW
dichiarazione può prendersi cura di più viste materializzate. Potrebbe essere necessario aggiungere CASCADE
alla fine se si dispone di viste nidificate.
Controllare lo script DDL risultante per essere sicuri prima di eseguirlo. Sei sicuro di voler eliminare tutte le MV da tutti gli schemi nel db? (Attualmente non ci sono viste materializzate in un'installazione standard fresca.)
Questo sarebbe più facile se si vuole ottenere una lista completa con l'istruzione DROP di fronte a ogni vista:
SELECT 'DROP MATERIALIZED VIEW ' || relname || ';'
FROM pg_class
WHERE relkind = 'm';
Questa una risposta si basa sulla risposta da Erwin Brandstetter. La versione seguente aggiunge un nome schema specifico per recuperare solo le viste materializzate da uno schema definito. Anche Cascasde elimina le dipendenze dalle viste materializzate da quello schema. Stai attento con questo.
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. Come ottenere l'elenco di tutte le viste materializzate in Oracle
- 2. Viste materializzate da PostgreSQL
- 3. Come aggiornare tutte le viste materializzate in Postgresql 9.3 in una sola volta?
- 4. Metodo preferito per viste materializzate (tabelle di riepilogo) con MySQL
- 5. Eliminare tutte le viste da SQL Server
- 6. Dati disponibili per tutte le viste nel codeigniter
- 7. Come posso impedire l'aggiornamento delle viste materializzate durante pg_restore?
- 8. UICollectionView: esiste un modo per ricaricare solo le viste supplementari?
- 9. Esiste un comando in R per visualizzare tutte le funzioni presenti in un pacchetto?
- 10. Eliminare tutte le funzioni dal database Postgres
- 11. Enumerate/iterate tutte le viste nell'attività?
- 12. Imposta GestureDetector su tutte le viste figlio
- 13. Postgres seleziona tutte le colonne ma raggruppa per una colonna
- 14. AngularJS: raggruppa tutte le viste parziali/modelli per la produzione
- 15. Mostra tutte le viste sul database di Oracle
- 16. Arresta Android dal layout di tutte le mie viste
- 17. Esiste un comando per cancellare il logcat?
- 18. Carica una libreria di tag modello Django per tutte le viste per impostazione predefinita
- 19. Esiste un modo automatico per trovare viste inutilizzate in MVC?
- 20. Come verificare se esiste un utente postgres?
- 21. come recuperare tutte le sezione della tabella viste visibili intestazione
- 22. JqGrid: Rimuovi descrizione comando per tutte le righe e colonne
- 23. Come si elencano tutte le viste indicizzate in SQL Server?
- 24. Rimozione di tutte le viste figlio dalla vista
- 25. Posiziona UIView in cima a tutte le altre viste
- 26. Esiste un comando per annullare git init?
- 27. Esiste un comando per aggiornare redis?
- 28. come rendere una variabile vista in tutte le viste - rotaie
- 29. Che cos'è il comando django per cancellare tutte le tabelle?
- 30. Esiste un timeout per le connessioni PostgreSQL inattive?
Presumibilmente un errore di battitura sopra - a mio PG, il 3 ° messa in vendita di cui sopra dovrebbe iniziare: SELECT 'GOCCIA vista materializzata' ... –
@MichaelTerry: Sì, mi aggiravo fuori tema alle viste. Grazie, risolto. –
come nota a margine è possibile utilizzare il comando pg quick command \ dm per ottenere semplicemente un elenco di visualizzazioni dal cli client. – lbrindze