ホームページ  >  記事  >  バックエンド開発  >  for ループを使用せずに Golang を使用して CSV ファイルを PostgreSQL に挿入するにはどうすればよいですか?

for ループを使用せずに Golang を使用して CSV ファイルを PostgreSQL に挿入するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-26 06:54:30616ブラウズ

How do I insert a CSV file into PostgreSQL using Golang without for loops?

Golang Sans For ループを使用して CSV を PostgreSQL に一括挿入する

Golang 初心者で、for ループや For ループに頼らずに CSV データを PostgreSQL テーブルに挿入したい場合生の SQL クエリを解決するには、pgx が最適です。方法は次のとおりです:

  1. pgx のインポート: PostgreSQL のデータベース インターフェイスである pgx をインポートすることから始めます。
<code class="go">import (
    "context"
    "fmt"
    "os"

    "github.com/jackc/pgx/v4"
)</code>
  1. データベース接続の確立: pgx.Connect() を使用して PostgreSQL データベースに接続します。
<code class="go">dbconn, err := pgx.Connect(context.Background(), os.Getenv("DATABASE_URL"))
if err != nil {
    panic(err)
}
defer dbconn.Release()</code>
  1. CSV ファイルを開く: 必要な CSV ファイルをロードします
<code class="go">f, err := os.Open(filename)
if err != nil {
    panic(err)
}
defer func() { _ = f.Close() }()</code>
  1. 一括挿入の実行: CopyFrom() を利用して、CSV ファイルから「csv_test」という名前のテーブルへの一括挿入を実行します。
<code class="go">res, err := dbconn.Conn().PgConn().CopyFrom(context.Background(), f, "COPY csv_test FROM STDIN (FORMAT csv)")
if err != nil {
    panic(err)
}</code>
  1. 結果の表示: 一括挿入の影響を受けた行数を出力します。
<code class="go">fmt.Print(res.RowsAffected())</code>

以上です。 pgx を使用すると、手動ループや複雑なクエリを必要とせずに、大量の CSV データを PostgreSQL データベースに迅速かつ効率的に挿入できます。

以上がfor ループを使用せずに Golang を使用して CSV ファイルを PostgreSQL に挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。