sql >> Database >  >> RDS >> PostgreSQL

Voer PostgreSQL-query's uit vanaf de opdrachtregel

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

Als postgresql nieuw voor u is en niet bekend is met het gebruik van de opdrachtregeltool psql dan is er wat verwarrend gedrag waar je op moet letten als je een interactieve sessie bent binnengegaan.

Start bijvoorbeeld een interactieve sessie:

psql -U username mydatabase 
mydatabase=#

Op dit punt kunt u rechtstreeks een zoekopdracht invoeren, maar u moet niet vergeten de zoekopdracht te beëindigen met een puntkomma ;

Bijvoorbeeld:

mydatabase=# SELECT * FROM mytable;

Als u de puntkomma vergeet, krijgt u niets op uw retourregel als u op enter drukt omdat psql gaat ervan uit dat u nog niet klaar bent met het invoeren van uw zoekopdracht. Dit kan tot allerlei verwarring leiden. Als u bijvoorbeeld dezelfde zoekopdracht opnieuw invoert, heeft u hoogstwaarschijnlijk een syntaxisfout gemaakt.

Probeer als experiment een willekeurig onleesbaar bericht te typen bij de psql-prompt en druk vervolgens op enter. psql zal u stilletjes voorzien van een nieuwe regel. Als u een puntkomma op die nieuwe regel invoert en vervolgens op enter drukt, ontvangt u de FOUT:

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

De vuistregel is:Als je geen reactie hebt ontvangen van psql maar je verwachtte tenminste IETS, dan vergat je de puntkomma ;



  1. SQL AND-operator voor beginners

  2. Hoe een nieuwregelteken in Oracle in te voeren?

  3. Postgres-server reageert niet op een nodejs-verzoek

  4. Een externe sleutel toewijzen aan een aangepaste kolomnaam