問題ID: 34630
- フォーラムは新サイトへ移行しました。
- このフォーラムではゲスト投稿が禁止されています
問題ID: 34630
msg# 1
fujii0401
投稿数: 23
copy文における「サーバー側」、「クライエント」の定義が分かりません。
てっきりサーバーに接続して\qコマンドを実行するわけですから例えばteratermなんかで接続をして\qコマンドを実行してサーバーホストにデータをテキストで落とすことを想定して「サーバ側にCSV形式でファイルとして出力」となれば\qコマンドと思っていたのですが違うのでしょうか?
てっきりサーバーに接続して\qコマンドを実行するわけですから例えばteratermなんかで接続をして\qコマンドを実行してサーバーホストにデータをテキストで落とすことを想定して「サーバ側にCSV形式でファイルとして出力」となれば\qコマンドと思っていたのですが違うのでしょうか?
Re: 問題ID: 34630
msg# 1.1
arashi1977
居住地: 広島
投稿数: 1715
引用:「copy文における」というのが誤解の元だと思います。
ここで言うサーバは「PostgreSQLのデータベースプロセス」のことです。
また、クライアントはpsqlコマンドのことです。ただし、psqlコマンドはサーバが動作しているマシン上でも外部の別のマシン上でもどちらでも実行できます。fujii0401 さんのおっしゃっている
引用:これは前者の話だけです( \q コマンドってpsqlを終了させるコマンドのはずですが…)。teratermで接続しているというのは(おそらく)「PostgreSQLのデータベースプロセスが動作しているサーバに接続して、サーバ上でpsqlコマンドを実行する」ということを想定されているのだと読み取りました。
ですが外部のマシンで実行している場合は「サーバ側にCSV形式でファイルを出力」させるには「 \copy」コマンド(psqlに仕事させる=必ずしもサーバマシンに出力されるわけではない)ではだめで、PostgreSQLのデータベースプロセスに出力処理を実行させる「COPY」コマンドじゃないとだめなんですね。
copy文における「サーバー側」、「クライエント」の定義が分かりません。
ここで言うサーバは「PostgreSQLのデータベースプロセス」のことです。
また、クライアントはpsqlコマンドのことです。ただし、psqlコマンドはサーバが動作しているマシン上でも外部の別のマシン上でもどちらでも実行できます。fujii0401 さんのおっしゃっている
引用:
例えばteratermなんかで接続をして\qコマンドを実行してサーバーホストにデータをテキストで落とすことを想定
ですが外部のマシンで実行している場合は「サーバ側にCSV形式でファイルを出力」させるには「 \copy」コマンド(psqlに仕事させる=必ずしもサーバマシンに出力されるわけではない)ではだめで、PostgreSQLのデータベースプロセスに出力処理を実行させる「COPY」コマンドじゃないとだめなんですね。