Ich habe eine materialisierte Ansicht in Postgres 9.3 erstellt, aber ich habe seitdem die zugrunde liegende SELECT-Abfrage verloren, die es erstellt hat. Ich möchte die materialisierte Ansicht ablegen, die Abfrage neu schreiben, um mehr Daten aufzunehmen, und dann eine materialisierte Ansicht desselben Namens, aber mit einer neuen zugrundeliegenden Abfrage erstellen.Wie finde ich die zugrunde liegende Abfrage einer materialisierten Ansicht, die ich erstellt habe?
Q
Wie finde ich die zugrunde liegende Abfrage einer materialisierten Ansicht, die ich erstellt habe?
5
A
Antwort
11
Nur:
SELECT pg_get_viewdef('myview');
vom Client Ihrer Wahl.
z.B. in psql
:
test=> CREATE MATERIALIZED VIEW fred AS SELECT x FROM generate_series(1,100) x;
SELECT 100
test=> \a\t
Output format is unaligned.
Showing only tuples.
test=> SELECT pg_get_viewdef('fred');
SELECT x.x
FROM generate_series(1, 100) x(x);
Dies funktioniert für normale und materialisierte Ansichten.
Alternativ, wie Richard sagt, verwenden Sie psql
\d+
, die pg_get_viewdef
hinter den Kulissen ruft.
0
SELECT * FROM "pg_catalog"."pg_matviews"
So finden Sie eine Liste aller materialisierten Ansichten, die Sie erstellt haben. Ich habe das pg_catalog-Schema vorher noch nie benutzt oder gesehen und Navicat, die GUI, die ich verwende, versteckte "Systemelemente", die pg_catalog enthielten. In den App-Einstellungen können Sie das Ausblenden der Abbiegung deaktivieren.
Verwandte Themen
- 1. Das Überlagern einer Ansicht deaktiviert keine Aktionen für die zugrunde liegende Ansicht
- 2. Die zugrunde liegende ObjectDataSource aus einer GridView holen
- 3. Wie wird die Bildlaufleiste korrekt angepasst, wenn sich die zugrunde liegende Auflistung einer WPF-ListView ändert?
- 4. Wie bekomme ich die zugrunde liegende Verbindung innerhalb einer Transaktion mit Hilfe von jOOQ?
- 5. Ich kann nicht richtig die Fremdschlüssel, die ich erstellt habe
- 6. Was ist die zugrunde liegende Struktur von std :: initializer_list?
- 7. Wie kann ich "Run configuration", die ich erstellt habe, bündeln?
- 8. ORACLE - materialisierten Ansicht LOG
- 9. Wenn ich eine NDarray-Ansicht an eine Funktion übergebe, kann ich ihre Basis finden, aber wie finde ich die Scheibe?
- 10. Wie finde ich die Koordinaten einer Adresse?
- 11. Wie exportiere ich eine Tabelle, die ich über eine Join-Abfrage in PHPMyAdmin erstellt habe?
- 12. Die zugrunde liegende Magie von -webkit-backface-Sichtbarkeit
- 13. Wie finde ich die Erweiterung einer Datei?
- 14. Wie finde ich die Größe einer Struktur?
- 15. GridView wird die zugrunde liegende Datenquelle nicht aktualisieren
- 16. Erkennen Sie die zugrunde liegende Plattform/Geschmack in Cmake
- 17. Holen Sie sich das die zugrunde liegende Variable eines Aufzählungs
- 18. Entity Framework - Die zugrunde liegende Anbieter schlug fehl am Connection
- 19. Wie entferne ich mehrere Schaltflächen, die ich mit einer Schleife erstellt habe?
- 20. Wie finde ich die Summe einer Spalte, die aus einer Abfrage generiert wurde?
- 21. Wie finde ich die CMake-Befehlszeile, die ich für den Build verwendet habe?
- 22. Wie finde ich die nächsten zwei Nummern einer benutzerdefinierten Funktion?
- 23. Was ist die zugrunde liegende Datenstruktur für Python-Listen?
- 24. Wie ändere ich die Sichtbarkeit einer Ansicht?
- 25. Wie finde ich ungültige Ansichten?
- 26. JPA-Entität ohne zugrunde liegende Tabelle
- 27. Wie finde ich die Schriftbreite?
- 28. Wie finde ich die Hauptfunktion meines Programms (...)?
- 29. Wie finde ich die Route, die mit einer URL übereinstimmt?
- 30. Wie finde ich die Gesamtzahl der SQL-Abfragen, die von einer Django-Anwendung erstellt wurden?
Oder '\ d + viewname' von psql. Nur '\ d viewname' gibt Spalten-Definitionen. –