PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Exécutez des requêtes PostgreSQL depuis la ligne de commande

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 ;