Wie man der Funktion parameter-Listen (so kann ich drop-Funktion)
Möchte ich, um die SQL-drop-Funktion in PostgreSQL. Ich Schreibe DROP FUNCTION
- und eine get-Funktion den Namen aus pg_proc
. Das ist kein problem. Jedoch wenn ich den Parameter leer lassen, es wird nicht drop-Funktion.
Ich habe das Handbuch und es wird geschrieben, dann habe ich zur Identifikation der Funktion mit Ihren Parametern fallen zu lassen, zB DROP FUNCTION some_func(text,integer)
nicht nur DROP FUNCTION some_func
.
Wo finde ich die Parameter? In der Funktion Zeile in der pg_proc
Tabelle gibt es keine Parameter. So, wie bekomme ich die SQL-drop-Funktion?
- Betrachten Sie die Funktion über pgAdmin.
\df name
im innerenpsql
.- Ist diese Frage beantwortet oder noch offen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Postgres hat eine spezielle Funktion für diesen Zweck. Eingeführt mit Postgres 8.4. Das Handbuch:
Verwenden, die (und
format()
, eingeführt mit Postgres 9.1) die folgende Abfrage generiert DDL-Anweisungen drop-Funktionen passende Suchbegriffe:Den system-Katalog
pg_proc
geändert Postgres 11.proisagg
wurde ersetzt durchprokind
wahre gespeicherte Prozeduren Hinzugefügt wurden. Sie müssen sich anpassen. Siehe:Gibt:
Fanden vier Spiele in der Beispiel, weil dblink verwendet überladene Funktionen.
Führen Sie
DROP
Aussagen selektiv!Alternativ, können Sie die praktische Besetzung der Objekt-id geben Sie
regprocedure
gibt eine vollständige Funktion Unterschrift darunter argument-Typen:verwenden pgadminIII und direkten Zugriff auf die Funktion Liste und klicken Sie rechts und wählen Sie dann löschen
In der Postgres-10, können Sie Sie löschen eine Funktion, ohne zu wissen, die Liste der Parameter, so lange, wie es einzigartig ist in seinem schema.
Siehe die Dokumentation.
Natürlich, wenn Sie überladen die Funktion (oder löschen möchten, über mehrere schemas), müssen Sie noch die oben genannten Antworten.
Wenn Sie arbeiten auf einem alten früheren version von postgres, für die pg_get_function_identity_arguments(func_oid) nicht vorhanden ist, erstelle ich meine eigene Funktion bekommt den Parameter der Funktion, die Sie nur brauchen, um passieren die oid der Funktion, die Sie bereitstellen müssen, die Funktion unten, um Ihre postgres-db.
Die Funktion unterhalb der Liste wird der name der Funktion und Parameter, ändern Sie den schema-Namen, wenn Sie wollen, get-Funktion unter etwas anderen schema, ich bin mit den öffentlichen zum Beispiel
Werden Sie das Ergebnis wie unten