2016-08-19 2 views
0

Ich bin mit PostgreSQL 9.5 auf Fedora 24Echo Ausgabe von vielen PostgreSQL Dateien

Ich habe die folgenden Dateien bekommt:

$ cat hello.sql 
SELECT 'hello'; 
$ cat world.sql 
SELECT 'world'; 

Und es gibt zwei Ausführungen unter:

$ psql samples -f hello.sql -f world.sql 
?column? 
---------- 
world 
(1 row) 

$ psql samples -f world.sql -f hello.sql 
?column? 
---------- 
hello 
(1 row) 

Was soll ich tun, um die Ausgabe von beiden Skripten zu sehen?

Antwort

0

Fehler in meinem Verständnis wurde versucht, viele PostgreSQL-Dateien in einem einzigen Befehl auszuführen. Ich habe lieber den folgenden Bash-Skript verwenden:

$ cat hello_world.sh 
SQL_FILES=(hello.sql world.sql) 
for SQL_FILE in ${SQL_FILES[@]} 
do 
    psql samples -f $SQL_FILE 
done 

Die Ausführung unten ist genau das, was ich brauche:

$ ./hello_world.sh 
?column? 
---------- 
hello 
(1 row) 

?column? 
---------- 
world 
(1 row) 
0

Sie wie unten verwenden können;

for sqlfile in hello.sql world.sql; do psql samples -f "$sqlfile"; done 
+0

Ja, das ist genau das, was ich in meiner Antwort gemeint. – pt12lol

3

Oder Sie könnten nur:

$ cat hello.sql world.sql |psql -f - 
?column? 
---------- 
hello 
(1 row) 

?column? 
---------- 
world 
(1 row) 
+0

dieser Befehl funktioniert nicht in meinem env. postgres @ host: ~ $ cat hallo.sql world.sql | psql -f - psql: : 2: FEHLER: Syntaxfehler bei oder in der Nähe von "select" LINE 2: select 'world' was ist der Grund? –

+0

Sie haben ";" s an Ort und Stelle? –

+0

Ja, funktioniert, danke; –

Verwandte Themen