sshを使用してpostgresで複数行クエリを実行する便利な方法は何ですか?


9

コンソールでいくつかのクエリを手書きする必要があるとしCREATE TABLEましょう。ステートメントのような複数行クエリを実行する最も効率的な方法は何ですか?

私はMicrosoft Management Studioを使用することに慣れていますが、自分でPostgreSQLについてその場で学ぶ必要があることに気づきました。


入力しますか?コピーアンドペースト?ファイルからリダイレクトしますか?
マイケルハンプトン

はい、指でタイプします。私がで取得していますことはpostgresということです#プロンプトが表示されますが、唯一のものが好きなのために素晴らしいですが一度に一つの行を入力しますCREATE DATABASEALTER USER。実行前にテキストを適切にフォーマットするにはどうすればよいですか?
チャドハリソン

回答:


4

実際には「複数行クエリ」などというものはありません-PostgreSQLが気にする限り、空白とそれらの改行はすべて意味がありません(それらが文字列内にあるか、COPYステートメントやタブでタブなどについて話している場合を除きます)他のいくつかの特別な場所)。

SSHを介して「コンソール上で」クエリを書き込むことは、通常psql、Postgresインタラクティブ端末であるツールを使用して行われます(詳細については、ドキュメントを参照してください)。

オプションを使用して、クエリ含むテキストファイルを渡すことができます。psql-f

psqlコマンドライン(シェルに応じて引用)にクエリを渡すか、STDIN(標準入力ストリーム)を介してそれらにパイプすることも-cできます- オプションを参照してください。


パイプ、パイプについて考えるべきだった。私はまだ学びます。
チャドハリソン

25

以下は、PostgreSQLの対話型ターミナルに移動します。

$ psql <your database name>

次に、\e(または\edit)を入力してエディターを開きviます(デフォルト)。

# \e

クエリを記述します。

select now();

最後に、保存して(例えば、あなたのエディタを終了:wqvi)、そしてpsqlあなただけ書いたクエリを実行します。

以下のような別のエディタ、設定するvimか、nano次の環境変数の設定1を、PSQL_EDITOREDITORVISUAL

詳細については、https://www.postgresql.org/docs/current/app-psql.htmlを参照してを検索してください\e


2

クエリを一時ファイルに書き込んで実行することができます psql -f /path/to/temp/file


0

当然ですが、誰も気付いていない場合は、psqlプロンプトで複数行のステートメントを直接記述できます。

psql -h localhost -p 5432 -U postgres public
public=# SELECT
public=# *
public=# FROM
public=# mytable
public=# LIMIT 1;

末尾の;文字に注意してください。SQLコマンドは、この文字が発行された後にのみ実行されます。したがって、最も簡単な方法は、末尾にを付けて複数行のSQLコマンドをコピーして貼り付けること;です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.