psql -U username -d mydatabase -c 'SELECT * FROM mytable'
Si es nuevo en postgresql y no está familiarizado con el uso de la herramienta de línea de comandos psql
entonces hay un comportamiento confuso que debe tener en cuenta cuando ingresa a una sesión interactiva.
Por ejemplo, inicie una sesión interactiva:
psql -U username mydatabase
mydatabase=#
En este punto, puede ingresar una consulta directamente pero debe recordar terminar la consulta con un punto y coma ;
Por ejemplo:
mydatabase=# SELECT * FROM mytable;
Si olvida el punto y coma, cuando presione Intro no obtendrá nada en su línea de retorno porque psql
estará suponiendo que no ha terminado de ingresar su consulta. Esto puede dar lugar a todo tipo de confusiones. Por ejemplo, si vuelve a ingresar la misma consulta, lo más probable es que haya creado un error de sintaxis.
Como experimento, intente escribir cualquier confusión que desee en el indicador de psql y luego presione Intro. psql
le proporcionará silenciosamente una nueva línea. Si ingresa un punto y coma en esa nueva línea y luego presiona enter, recibirá el ERROR:
mydatabase=# asdfs
mydatabase=# ;
ERROR: syntax error at or near "asdfs"
LINE 1: asdfs
^
La regla general es:si no recibió respuesta de psql
pero esperabas al menos ALGO, entonces olvidaste el punto y coma ;