2016-07-28 28 views
1

Postgresクエリを実行するたびに、コマンドラインを完全に終了する必要があるようです。コマンドラインを離れずにPostgresクエリを終了する - 自動的にコマンドラインに戻る

CTRL-Cを押すと完了しました。PSQLコマンドラインに戻ると、databasename=>となります。さらに、私が結果を見る途中でCTRL-Cを押すと、Postgresはdatabasename=>に私を送り返すことができますか?

ボーナス:

は、スクリプトへの道があり、私はデータベース名は、psqlのでfolllwed usedb入力した場合、Postgresは私が参照していたデータベースを知っていると自動的に入力する必要があり、私はいけないので、それを私に接続するそうです\ connect databasename?

+0

体験していることをもう少し教えていただけますか?クエリ実行中に 'ctrl-c'を押すとどうなりますか?また、[psqlのドキュメント](https://www.postgresql.org/docs/current/static/app-psql.html)を見てきましたか?ボーナスの質問に役立つ情報があります。 – jmelesky

答えて

0

postgresクエリが実行され、 'psql'コマンドライン環境で結果テーブルが返されると、前のコマンドを実行したのと同じデータベースに戻ります。

あなたの端末からデータベースに直接接続する場合:

psql -d nameofdatabase 

スクリプトを使用して接続する場合は、urlではpostgresにアクセスすることができます。

postgres://username:[email protected]/nameofdatabase 

「ローカルホスト」を接続しようとしているデータベースのipで置き換えられます。

0

Ctrl-Cを押すのではなく、Ctrl-Dを押してください。 Unixでは、Ctrl-DはEOF(End of File)文字です。それはpsqlを終了するものです---あなたがstdinにスクリプトを与えて、それが終わりに達した場合のように。それは、例えば、あなたが個々のコマンドを中止するためにそれを使用できるように、その理由Ctrl-Cは出口があるしないなどirbrails consolepythonRbash、などの

、あまりにも多くの他のREPLsで動作します長期実行クエリ。

EDIT:あなたは(彼らが新しい画面に表示され、あなたが上下にスクロールすることができます)の結果を表示しているし、彼らがページングされている場合も、あなたはqを入力して、バックpsqlプロンプトに取得することができます。デフォルトでは、使用されるページャはlessです。あなたはそれについてもっと読むためにman lessと言うことができます。また、テキストファイル(less /etc/services)で試してみてください。

個人的に私は迷惑psqlでページングを見つけたので、私はこのラインで~/.psqlrcという名前のファイルを作成することで、それをオフにします。

\pset pager 

(あなたはすでにこれを知っていればまた、申し訳ありません:~がためだけの略語であり、 「私のホームディレクトリ」だから~/.psqlrc/home/whatever/.psqlrcと同じである)

ボーナス:。。あなたは、特定のデータベースに接続する場合は、psql -d fooあるいは単にpsql fooを言うことができます。

関連する問題