ホームページ >データベース >mysql チュートリアル >CSV ファイルのデータで Postgres 行を更新するにはどうすればよいですか?
CSV データを使用して Postgres 行を更新する: ステップバイステップ ガイド
このガイドでは、CSV ファイルから取得したデータを使用して既存の Postgres 行を更新する方法について詳しく説明します。 このプロセスには、いくつかの重要なステップが含まれます:
1.一時テーブルの確立
まず、Postgres データベース内に一時テーブルを作成します。 このテーブルは、CSV データのステージング領域として機能します。 テーブル スキーマはターゲット テーブルの構造を反映する必要があります。例:
<code class="language-sql">CREATE TEMP TABLE tmp_x (id int, banana text, apple text);</code>
2. CSVデータのインポート
COPY
コマンドを使用して、CSV ファイルの内容を一時テーブルにロードします。 /absolute/path/to/file
を実際のファイル パスに置き換えることを忘れないでください:
<code class="language-sql">COPY tmp_x FROM '/absolute/path/to/file' (FORMAT csv);</code>
3.アップデートの実行
一時テーブル内のデータを使用して、UPDATE
ステートメントを実行してターゲット テーブルを変更します。この例では、一致する banana
値に基づいて id
列を更新します。
<code class="language-sql">UPDATE tbl SET banana = tmp_x.banana FROM tmp_x WHERE tbl.id = tmp_x.id;</code>
4.一時テーブルを削除しています
更新が完了したら、一時テーブルを削除してリソースを再利用します。
<code class="language-sql">DROP TABLE tmp_x;</code>
重要な注意事項:
COPY
でデータを更新するには、通常、スーパーユーザー権限または適切に割り当てられたロールが必要です (特に Postgres 10 以降)。copy
クライアント内の psql
メタコマンドは、スーパーユーザー権限を持たないユーザーに代替手段を提供します。temp_buffers
を増やし、一時テーブルのインデックスを作成することが必要になる場合があります。この方法は、CSV ファイルのデータを使用して特定の Postgres 行を効率的に更新する方法を提供します。
以上がCSV ファイルのデータで Postgres 行を更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。