Go を使用した CSV から PostgreSQL への効率的な一括データ挿入 (For ループなし)
Go では、Postgres COPY コマンドが効率的な方法を提供しますCSV ファイルから PostgreSQL データベースにデータを一括挿入します。 for ループを使用せずにこれを実現する方法は次のとおりです。
ステップ 1: データベース接続を確立する
pgx ライブラリを使用してデータベース接続を確立します。これは、データベースにアクセスしてコマンドを実行するために不可欠です。
ステップ 2: CSV ファイルを開きます
挿入するデータを含む CSV ファイルを開きます。アプリケーションがファイルにアクセスできることを確認してください。
ステップ 3: COPY コマンドを実行します
PgConn().CopyFrom() メソッドを実行して、データ転送を開始します。 CSV ファイルをデータベース テーブルにコピーします。以下に例を示します。
<code class="go">import ( "context" "fmt" "io" "github.com/jackc/pgx/v4/pgxpool" ) const query = "COPY csv_test FROM STDIN (FORMAT csv)" func main() { dbpool, err := pgxpool.Connect(context.Background(), os.Getenv("DATABASE_URL")) if err != nil { panic(err) } defer dbpool.Close() f, err := os.Open("foo.csv") if err != nil { panic(err) } defer f.Close() res, err := dbpool.Conn().PgConn().CopyFrom(context.Background(), f, query) if err != nil { panic(err) } fmt.Print(res.RowsAffected()) }</code>
コードの内訳:
利点:
以上がFor ループを使用せずに CSV データを PostgreSQL に効率的に一括挿入する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。