sql >> Database teknologi >  >> RDS >> PostgreSQL

Kør PostgreSQL-forespørgsler fra kommandolinjen

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

Hvis du er ny til postgresql og ikke er bekendt med at bruge kommandolinjeværktøjet psql så er der noget forvirrende adfærd, du skal være opmærksom på, når du er gået ind i en interaktiv session.

Start f.eks. en interaktiv session:

psql -U username mydatabase 
mydatabase=#

På dette tidspunkt kan du indtaste en forespørgsel direkte, men du skal huske at afslutte forespørgslen med et semikolon ;

For eksempel:

mydatabase=# SELECT * FROM mytable;

Hvis du glemmer semikolon, vil du ikke få noget på din returlinje, når du trykker på Enter, fordi psql vil antage, at du ikke er færdig med at indtaste din forespørgsel. Dette kan føre til alle former for forvirring. Hvis du f.eks. indtaster den samme forespørgsel igen, vil du højst sandsynligt have oprettet en syntaksfejl.

Som et eksperiment kan du prøve at skrive enhver forvanskning, du ønsker, ved psql-prompten og derefter trykke på enter. psql vil lydløst give dig en ny linje. Hvis du indtaster et semikolon på den nye linje og derefter trykker på enter, vil du modtage FEJL:

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

Tommelfingerreglen er:Hvis du ikke har modtaget noget svar fra psql men du forventede i det mindste NOGET, så glemte du semikolonet ;



  1. Hvad betyder det, når en PostgreSQL-proces er inaktiv i transaktionen?

  2. Konverter String ISO-8601 dato til oracles tidsstempel datatype

  3. Postgres funktion NULL værdi for række, der refererer til NY

  4. SQL Server undslipper en understregning