Wie führe ich postgres sql-Skript von einem anderen Skript aus?

8

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:)

    
Marcin Roguski 14.01.2015, 10:58
quelle

1 Antwort

1

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:

%Vor%

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:

%Vor%
  

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?

    
user 18.11.2016, 01:20
quelle

Tags und Links