Wie drucke ich Funktionen und löse Quellcode in postgresql aus? Bitte lassen Sie mich wissen, wenn jemand die Abfrage zur Anzeige der Funktion kennt und den Quellcode auslöst.
postgresql
Ganesh
quelle
quelle
select * from pg_trigger;
oder, wenn Sie auch sehen möchten, welche Tabelle jeder Trigger fürselect tgrelid::regclass, tgname from pg_trigger;
FWIW `Antworten:
\df+
in psql gibt Ihnen den Quellcode.quelle
\df
vor, den Namen Ihrer Funktion zu finden, dann\x
für die erweiterte Ausgabe, dann\df+ name_of_function
\df ltxtquery
.\x ON
ist ein Muss für transponierte AnzeigeFür die Funktion:
Sie können die Ansicht pg_proc wie folgt abfragen
Eine andere Möglichkeit besteht darin, einfach den Befehl auszuführen
\df
und\ef
die Funktionen aufzulisten .Es wird der Quellcode der Funktion angezeigt.
Für Auslöser:
Ich weiß nicht, ob es einen direkten Weg gibt, um den Quellcode zu erhalten. Kennen Sie einfach den folgenden Weg, vielleicht hilft es Ihnen!
Es zeigt Ihnen die Details des Auslösers der Tabelle. Normalerweise verwendet ein Trigger eine Funktion. Sie können also den Quellcode der Triggerfunktion genau wie oben beschrieben abrufen!
quelle
Hier einige Beispiele aus PostgreSQL-9.5
Anzeigeliste:
\df+
\dy+
Anzeigedefinition:
quelle
\x
zuerst die erweiterte Anzeige aktivieren, wird auch die Lesbarkeit verbessert.Es gibt viele Möglichkeiten. Am einfachsten ist es, einfach pgAdmin zu verwenden und dies aus dem SQL-Fenster abzurufen. Allerdings , wenn Sie programmatisch diese dann examinate erhalten möchten
pg_proc
undpg_trigger
Systemkataloge oderroutines
undtriggers
Ansichten von Informationen Schema (das Standard Weise SQL, aber es könnte nicht decken alle Funktionen besonders PostgreSQL-spezifisch). Beispielsweise:quelle
SELECT view_definition FROM information_schema.views WHERE table_schema = ? AND table_name = ?
pgproc.prosrc
SpalteEtwas mehr als nur das Anzeigen der Funktion, wie wäre es auch mit der Funktion zum Bearbeiten an Ort und Stelle?
\ef <function_name>
ist sehr praktisch. Der Quellcode der Funktion wird im bearbeitbaren Format geöffnet. Sie können es nicht nur anzeigen, sondern auch bearbeiten und ausführen.Nur
\ef
ohne Funktionsname wird die bearbeitbare Vorlage CREATE FUNCTION geöffnet.Zur weiteren Bezugnahme -> https://www.postgresql.org/docs/9.6/static/app-psql.html
quelle
\sf
Funktionsname in psql liefert den bearbeitbaren Quellcode einer einzelnen Funktion.Von https://www.postgresql.org/docs/9.6/static/app-psql.html :
quelle
Zusätzlich zur Antwort von @ franc können Sie dies über die SQL-Oberfläche verwenden:
(von hier genommen: http://www.postgresql.org/message-id/Pine.BSF.4.10.10009140858080.28013-100000@megazone23.bigpanda.com )
quelle
Seit Version: psql (9.6.17, Server 11.6)
Ich habe alle oben genannten Antworten außer für mich versucht
df scheint bei mir nicht zu funktionieren.
quelle