タグ付けされた質問 「psql」

psqlは、PostgreSQLの主要な対話型ターミナルです。(PostgreSQLを対象とする質問には、このタグを使用しないでください!)

4
(変数値に基づいて)条件付きでpsqlスクリプトを停止する方法は?
次の例を考えてみましょう(psqlスクリプトの最初から)。 \c :db_to_run_on TRUNCATE the_most_important_table; -- tried to avoid similarities to anything that exists out there これをコマンドで実行すると psql [connection details] -v db_to_run_on=\'dev_database\' その後、それは実行され、ユーザーは満足しています。しかし、もし彼が特定することを決定した場合はどうなります-v db_to_run_on=production_databaseか?(人々がrm -rf / # don't try this at home!!!たまに実行するように、これが起こる可能性があると仮定しましょう。)うまくいけば、そのテーブルの新しいバックアップがあるでしょう... したがって、問題が発生します。スクリプトに渡された変数を確認し、その値に基づいて以降の処理を停止する方法は?
10 postgresql  psql 


2
psql:SELECT *…1つの列を除く
私は、psqlで1つを除くすべての列を選択する簡単な方法を検索します。 psql私は対話型のコマンドラインを意味します。 *引用符で囲まれた列名のリストに拡張できるツールがあれば幸いです。次に、カラムを取り外して手で取り外すことができます。 私の質問は、psqlのインタラクティブな使用法についてです。これは、SQL標準に不満があり、「select * -foo」のようなものを実行したいという人々の質問の複製ではありません。
10 postgresql  psql 

6
引数をpsqlに渡す
Postgres 8.3でplpgsqlスクリプトを実行しています-psqlを介してこのスクリプトに引数を渡したいのですが。私は現在次のようなスクリプトを実行しています: psql -d database -u user -f update_file.sql PGOPTIONS環境変数を説明するこのリンクに出くわしましたが、「カスタム」引数に対しては機能しません。つまり、設定がpostgres.confファイルにリストされていないため、エラーが表示されます。 -bash-3.2$ export PGOPTIONS='--pretend=true' -bash-3.2$ psql -d my_db -f update_database.sql psql: FATAL: unrecognized configuration parameter "pretend" 他のアイデアは?理想的には環境変数を避けたい...
10 postgresql  psql 

2
結果を待たずにpsqlからクエリを実行する方法は?
(既存のテーブルから新しいテーブルを作成するための)クエリに非常に長い時間がかかります。そこで、オフィスにリモートデータベースをセットアップしました-RAMを増やします。 通常どおり、psqlを使用して自宅からデータベースに接続できます。 応答を待たずにターミナルからクエリを実行するようにリモートサーバーに指示するにはどうすればよいですか? (postgresql-9.2、Linux環境) 編集:私は他のソリューションにオープンです、psqlを使用する必要はありません

1
Postgresクライアントのコピー(\ copy)コマンドは一時テーブルにアクセスできませんか?
最終的にpsql -fを使用して実行するデータをエクスポートするためのSQLコマンドのリストを生成しています。クエリはすべて同じデータのサブセットを取得するので、資格を考慮に入れて、適格なユーザーIDのリストを一時テーブルにそのように配置すると思いました create temporary table tmp_export_users as (select id from users where ...) それから私のような\ copyコマンドでそれをもう一度参照してください \copy (select ... from table where user_id in (select id from tmp_export_users)) TO 'filename.csv' WITH CSV HEADER それらはすべて同じファイルにあり、1行に1つずつ実行します。-fコピーコマンドが一時テーブルを表示できないというエラーが表示されるので、クライアントのコピーコマンドが実際に同じpostgresを使用してはいけないと思いますpsqlとしてのセッション。 あれは正しいですか?その動作を変更する方法はありますか?

2
psqlと--disable-triggersを使用したプレーンテキストのpg_dumpの復元
テーブルの「レガシー」データを更新するために、短いスクリプトでいくつかのテストを実行する必要がありました。 私は慎重で、テストされていないスクリプトを使用して、その前に関連テーブルをバックアップすることにしました。これを行う最も簡単な方法は次のとおりです。 pg_dump -a --file table.sql -t table database 今、私は自分がしなければならないことをし、結果を確認しましたが、それらはかなり満足のいくものではありませんでした。私は自分自身に考えました。そのテーブルのバックアップを作成することは、どれほど幸運かです。 私がテーブルをバックアップしたとき、私はすでに警告されていました: pg_dump: NOTICE: there are circular foreign-key constraints among these table(s): pg_dump: table pg_dump: You might not be able to restore the dump without using --disable-triggers or temporarily dropping the constraints. pg_dump: Consider using a full dump instead of a …

1
複数のSQLファイルを含むマスターファイルを実行できるPostgres管理GUIはありますか
本当に長いスクリプトを開発しています。スクリプトをより小さく管理しやすいスクリプトに分割し、各sqlファイルをマスターファイルに含めてから、マスターファイルを実行します。 例: master.sql 内容(使用する構文がわかりません): file1.sql file2.sql file3.sql psql -fコマンドラインでの使用および\iこれらのファイルのインクルードに関するいくつかのチュートリアルを見つけましたが、ここでは、端末を避け、GUIを使用してデータベースを管理し、master.sqlスクリプトを実行することをお勧めします。 これはどのpostgres管理GUIでも可能ですか?おそらくそれはpgAdminにはありません。

2
\ copyを使用する場合のpsqlの変数置換
私はpsqlコマンド\ copyを使用していますが、クエリのスクリプトを作成するときに行ったように、シェルから(テーブル名の)変数を変数に渡したいと思います。私はpsqlのドキュメントを読みました: コマンドの構文は、SQL COPYコマンドの構文に似ています。このため、\ copyコマンドには特別な解析ルールが適用されます。特に、変数置換ルールとバックスラッシュエスケープは適用されません。 これは非常に決定的なようですが、誰かが回避策を知っているのでしょうか?

3
psql変数を連結する方法は?
2つのpsql(PostgreSQLクライアント)変数をどのように連結できますか?ディレクトリパス変数とファイル名変数を連結して絶対パスを生成したい。 私はこれを試しました: \set path '/tmp/' \set file 'foo' \echo :path:file しかし、psqlはパスとファイルの間にスペースを入れて出力します。 /tmp/ foo
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.