psql -U username -d mydatabase -c 'SELECT * FROM mytable'
Om du är ny på postgresql och inte känner till att använda kommandoradsverktyget psql
då finns det något förvirrande beteende du bör vara medveten om när du har gått in i en interaktiv session.
Starta till exempel en interaktiv session:
psql -U username mydatabase
mydatabase=#
Vid det här laget kan du ange en fråga direkt men du måste komma ihåg att avsluta frågan med ett semikolon ;
Till exempel:
mydatabase=# SELECT * FROM mytable;
Om du glömmer semikolonet kommer du inte att få någonting på returraden när du trycker på Enter eftersom psql
antar att du inte har skrivit klart din fråga. Detta kan leda till alla typer av förvirring. Till exempel, om du anger samma fråga igen kommer du troligen att skapa ett syntaxfel.
Som ett experiment, försök att skriva valfri förvrängning du vill vid psql-prompten och tryck sedan på enter. psql
kommer tyst att förse dig med en ny linje. Om du anger ett semikolon på den nya raden och sedan trycker på enter, kommer du att få FEL:
mydatabase=# asdfs
mydatabase=# ;
ERROR: syntax error at or near "asdfs"
LINE 1: asdfs
^
Tumregeln är:Om du inte fick något svar från psql
men du förväntade dig åtminstone NÅGOT, då glömde du semikolonet ;