問題ID: 34630

  • フォーラムは新サイトへ移行しました。
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2020-5-6 2:53
fujii0401  一人前   投稿数: 23
copy文における「サーバー側」、「クライエント」の定義が分かりません。
てっきりサーバーに接続して\qコマンドを実行するわけですから例えばteratermなんかで接続をして\qコマンドを実行してサーバーホストにデータをテキストで落とすことを想定して「サーバ側にCSV形式でファイルとして出力」となれば\qコマンドと思っていたのですが違うのでしょうか?
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2020-5-6 9:29
arashi1977  長老 居住地: 広島  投稿数: 1715
引用:
copy文における「サーバー側」、「クライエント」の定義が分かりません。
「copy文における」というのが誤解の元だと思います。

ここで言うサーバは「PostgreSQLのデータベースプロセス」のことです。
また、クライアントはpsqlコマンドのことです。ただし、psqlコマンドはサーバが動作しているマシン上でも外部の別のマシン上でもどちらでも実行できます。fujii0401 さんのおっしゃっている
引用:
例えばteratermなんかで接続をして\qコマンドを実行してサーバーホストにデータをテキストで落とすことを想定
これは前者の話だけです( \q コマンドってpsqlを終了させるコマンドのはずですが…)。teratermで接続しているというのは(おそらく)「PostgreSQLのデータベースプロセスが動作しているサーバに接続して、サーバ上でpsqlコマンドを実行する」ということを想定されているのだと読み取りました。

ですが外部のマシンで実行している場合は「サーバ側にCSV形式でファイルを出力」させるには「 \copy」コマンド(psqlに仕事させる=必ずしもサーバマシンに出力されるわけではない)ではだめで、PostgreSQLのデータベースプロセスに出力処理を実行させる「COPY」コマンドじゃないとだめなんですね。

  >フォーラム検索へ


Copyright (c) 2020 Ping-t All rights reserved.