Go を使用して STDIN から PostgreSQL に行をインポートするにはどうすればよいですか?

Susan Sarandon
リリース: 2024-10-24 16:06:01
オリジナル
398 人が閲覧しました

How to Import Rows into PostgreSQL from STDIN Using Go?

Go を使用した STDIN から PostgreSQL への行のインポート

Go では、pq を使用して標準入力 (STDIN) から PostgreSQL に行をインポートできます。パッケージ。このアプローチでは、中間ファイルを必要とせずに、データをデータベースに直接フィードします。

STDIN から行を直接インポートするには、次の手順に従います。

  1. PostgreSQL 接続を開く: sql.Open 関数を使用して PostgreSQL データベースへの接続を確立します。
  2. トランザクションの開始: Begin 関数を使用してデータベース トランザクションを開始し、複数のステートメントをグループ化します。
  3. Prepare Copy Statement: pq.CopyIn を使用してデータをコピーするための Prepared Statement を作成します。このステートメントは、ターゲット テーブル名とインポートする列を指定します。
  4. 行のインポート: インポートするデータの行ごとに準備されたステートメントを繰り返し実行します。 Exec 関数を使用して、各行をデータベースに送信します。
  5. コピー ステートメントの終了: すべての行を追加した後、引数を指定せずに準備されたステートメントを再度実行して、インポート プロセスを終了します。
  6. Close Prepared Statement: Close メソッドを呼び出して、Prepared Statement に関連付けられたリソースを解放します。
  7. Commit Transaction: トランザクションをコミットして変更を永続化します。

コード例:

Go を使用して STDIN から行をインポートするコード例を次に示します。

<code class="go">package main

import (
    "database/sql"
    "fmt"
    "io"
    "log"

    "github.com/lib/pq"
)

func main() {
    db, err := sql.Open("postgres", "host=localhost port=5432 user=postgres password=mysecret dbname=mydatabase")
    if err != nil {
        log.Fatal(err)
    }
    defer db.Close()

    rows := [][]string{
        {"Rob", "Pike"},
        {"Ken", "Thompson"},
        {"Robert", "Griesemer"},
    }

    txn, err := db.Begin()
    if err != nil {
        log.Fatal(err)
    }

    stmt, err := txn.Prepare(pq.CopyIn("test", "first_name", "last_name"))
    if err != nil {
        log.Fatal(err)
    }

    for _, r := range rows {
        if _, err = stmt.Exec(r[0], r[1]); err != nil {
            log.Fatal(err)
        }
    }

    if _, err = stmt.Exec(); err != nil {
        log.Fatal(err)
    }

    if err = stmt.Close(); err != nil {
        log.Fatal(err)
    }

    if err = txn.Commit(); err != nil {
        log.Fatal(err)
    }

    fmt.Println("Rows imported successfully.")
}</code>
ログイン後にコピー

これらの手順に従って pq パッケージを利用すると、Go プログラムの STDIN から直接 PostgreSQL にデータを効率的にインポートできます。

以上がGo を使用して STDIN から PostgreSQL に行をインポートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート