psql -U username -d mydatabase -c 'SELECT * FROM mytable'
postgresqlを初めて使用し、コマンドラインツールpsql
の使用に慣れていない場合 次に、インタラクティブセッションに参加したときに注意する必要のある紛らわしい動作がいくつかあります。
たとえば、インタラクティブセッションを開始します。
psql -U username mydatabase
mydatabase=#
この時点でクエリを直接入力できますが、セミコロン;
でクエリを終了することを忘れないでください。
例:
mydatabase=# SELECT * FROM mytable;
セミコロンを忘れた場合は、Enterキーを押すと、psql
が原因で、リターン行に何も表示されません。 クエリの入力が完了していないことを前提としています。これは、あらゆる種類の混乱につながる可能性があります。たとえば、同じクエリを再入力すると、構文エラーが発生する可能性があります。
実験として、psqlプロンプトで必要な文字化けを入力してから、Enterキーを押してみてください。 psql
静かに新しい行を提供します。その新しい行にセミコロンを入力してEnterキーを押すと、エラーが発生します:
mydatabase=# asdfs
mydatabase=# ;
ERROR: syntax error at or near "asdfs"
LINE 1: asdfs
^
経験則は次のとおりです。psql
から応答がない場合 しかし、少なくとも何かを期待していたので、セミコロン;
を忘れました。