psql -U username -d mydatabase -c 'SELECT * FROM mytable'
Se você é novo no postgresql e não está familiarizado com o uso da ferramenta de linha de comando
psql
então há algum comportamento confuso do qual você deve estar ciente ao entrar em uma sessão interativa. Por exemplo, inicie uma sessão interativa:
psql -U username mydatabase
mydatabase=#
Neste ponto, você pode inserir uma consulta diretamente, mas você deve se lembrar de encerrar a consulta com um ponto e vírgula
;
Por exemplo:
mydatabase=# SELECT * FROM mytable;
Se você esquecer o ponto e vírgula, quando você pressionar enter, não receberá nada na linha de retorno porque
psql
assumirá que você não terminou de inserir sua consulta. Isso pode levar a todos os tipos de confusão. Por exemplo, se você inserir novamente a mesma consulta, provavelmente criará um erro de sintaxe. Como um experimento, tente digitar qualquer distorção que desejar no prompt do psql e pressione Enter.
psql
fornecerá silenciosamente uma nova linha. Se você inserir um ponto e vírgula nessa nova linha e pressionar enter, receberá o ERRO:mydatabase=# asdfs
mydatabase=# ;
ERROR: syntax error at or near "asdfs"
LINE 1: asdfs
^
A regra geral é:Se você não recebeu resposta do
psql
mas você estava esperando pelo menos ALGO, então você esqueceu o ponto e vírgula ;