PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Führen Sie PostgreSQL-Abfragen über die Befehlszeile aus

psql -U username -d mydatabase -c 'SELECT * FROM mytable'

Wenn Sie Postgresql noch nicht kennen und mit der Verwendung des Befehlszeilentools psql nicht vertraut sind dann gibt es ein verwirrendes Verhalten, auf das Sie achten sollten, wenn Sie in eine interaktive Sitzung eingetreten sind.

Starten Sie beispielsweise eine interaktive Sitzung:

psql -U username mydatabase 
mydatabase=#

An dieser Stelle können Sie direkt eine Abfrage eingeben, Sie müssen jedoch daran denken, die Abfrage mit einem Semikolon ; abzuschließen

Zum Beispiel:

mydatabase=# SELECT * FROM mytable;

Wenn Sie das Semikolon vergessen, erhalten Sie beim Drücken der Eingabetaste nichts in Ihrer Rückgabezeile, weil psql gehen davon aus, dass Sie Ihre Anfrage noch nicht vollständig eingegeben haben. Das kann zu allerlei Verwirrung führen. Wenn Sie beispielsweise dieselbe Abfrage erneut eingeben, wird höchstwahrscheinlich ein Syntaxfehler erstellt.

Versuchen Sie als Experiment, an der psql-Eingabeaufforderung einen beliebigen Text einzugeben, und drücken Sie dann die Eingabetaste. psql stellt Ihnen stillschweigend eine neue Zeile zur Verfügung. Wenn Sie in dieser neuen Zeile ein Semikolon eingeben und dann die Eingabetaste drücken, erhalten Sie den ERROR:

mydatabase=# asdfs 
mydatabase=# ;  
ERROR:  syntax error at or near "asdfs"
LINE 1: asdfs
    ^

Als Faustregel gilt:Wenn Sie keine Antwort von psql erhalten haben aber Sie haben zumindest ETWAS erwartet, dann haben Sie das Semikolon ; vergessen