Ich habe eine Reihe von SQL-Skripten, die Tabellen in der Datenbank erstellen. Jede Tabelle befindet sich in einer separaten Datei, so dass die Bearbeitung viel einfacher ist.
Ich wollte ein einzelnes SQL-Skript vorbereiten, das das vollständige Schema erstellt, Tabellen erstellt, Testdaten einfügt und Sequenzen für die Tabellen generiert.
Ich konnte so etwas für die Oracle-Datenbank tun, aber ich habe Probleme mit Postgres. Die Sache ist - ich weiß nicht, wie man die Tabelle erstellt, indem man Skript von einem anderen Skript erstellt.
In Oracle verwende ich die folgende Syntax:
%Vor%Und alles funktioniert wie ein Zauber.
In Postgres habe ich versucht, nach etwas ähnlichem zu suchen und habe das gefunden:
%Vor%Leider bekomme ich beim Ausführen meines Hauptskriptes folgende Meldung:
%Vor%Der Beispielaufruf ist hier:
%Vor%Ich benutze Postgres 9.3. Ich habe versucht, das Skript mit psql:
auszuführen %Vor%Die Datei wird ordnungsgemäß ausgeführt, mit Ausnahme des Aufrufs dieser anderen Skripts.
Weiß jemand, wie man das Problem löst?
Wenn etwas in der Frage unklar ist - lassen Sie es mich wissen:)
Basierend auf der Antwort ist es möglich, eine andere SQL-Datei aus dem SQL-Skript zu referenzieren , auf PostgreSQL können Sie eine andere hinzufügen SQL-Dateien verwenden nur die \i
-Syntax. Ich habe gerade getestet und funktioniert gut auf PostgreSQL 9.6:
Durch den @wildplasser-Kommentar:
%Vor% Aus der Perspektive von psql ist die Datei main_sql
einfach nur stdin und stdin hat keinen "filename". Verwenden Sie -f filename
, um eine Datei mit einem Namen einzureichen:
Wie führe ich postgres sql-Skript von einem anderen Skript aus?
Scheint dieselbe Frage wie: Wie importiere ich externe SQL-Skripte von einem SQL-Skript in PostgreSQL?
Tags und Links postgresql