psql -U username -d mydatabase -c 'SELECT * FROM mytable'
Si vous débutez avec postgresql et que vous n'êtes pas familier avec l'outil de ligne de commande psql
alors il y a un comportement déroutant dont vous devez être conscient lorsque vous entrez dans une session interactive.
Par exemple, lancez une session interactive :
psql -U username mydatabase
mydatabase=#
À ce stade, vous pouvez entrer une requête directement mais vous devez vous rappeler de terminer la requête par un point-virgule ;
Par exemple :
mydatabase=# SELECT * FROM mytable;
Si vous oubliez le point-virgule, lorsque vous appuyez sur Entrée, vous n'obtiendrez rien sur votre ligne de retour car psql
supposera que vous n'avez pas fini de saisir votre requête. Cela peut conduire à toutes sortes de confusions. Par exemple, si vous ressaisissez la même requête, vous aurez très probablement créé une erreur de syntaxe.
À titre d'expérience, essayez de taper n'importe quel texte confus à l'invite psql, puis appuyez sur Entrée. psql
vous fournira silencieusement une nouvelle ligne. Si vous entrez un point-virgule sur cette nouvelle ligne, puis appuyez sur Entrée, vous recevrez l'ERREUR :
mydatabase=# asdfs
mydatabase=# ;
ERROR: syntax error at or near "asdfs"
LINE 1: asdfs
^
La règle d'or est :si vous n'avez reçu aucune réponse de psql
mais vous vous attendiez à au moins QUELQUE CHOSE, alors vous avez oublié le point-virgule ;