ホームページ  >  記事  >  バックエンド開発  >  Go の pq パッケージを使用して STDIN から PostgreSQL にデータをインポートするにはどうすればよいですか?

Go の pq パッケージを使用して STDIN から PostgreSQL にデータをインポートするにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-24 18:34:31887ブラウズ

How to Import Data from STDIN to PostgreSQL Using Go's pq Package?

STDIN から Postgresql に行をインポートするにはどうすればよいですか? [重複]

Go では、pq パッケージを使用して STDIN から PostgreSQL に行をインポートできます。段階的な解決策は次のとおりです。

ステップ 1: データベース接続を準備する

<code class="go">import (
    "database/sql"

    "github.com/lib/pq"
)

db, err := sql.Open("postgres", "dbname=mydb user=myuser password=mypassword")
if err != nil {
    log.Fatalf("open: %v", err)
}</code>

ステップ 2: トランザクションを開始する

<code class="go">txn, err := db.Begin()
if err != nil {
    log.Fatalf("begin: %v", err)
}</code>

ステップ 3: 準備するCopy ステートメント

pq.CopyIn() を使用してプリペアド ステートメントを作成します。

<code class="go">stmt, err := txn.Prepare(pq.CopyIn("test_table", "column1", "column2", ...))
if err != nil {
    log.Fatalf("prepare: %v", err)
}</code>

ステップ 4: Copy ステートメントを実行します

データを反復処理して stmt を実行します各行の .Exec()。

<code class="go">for _, row := range rows {
    _, err = stmt.Exec(row.Column1, row.Column2, ...)
    if err != nil {
        log.Fatalf("exec: %v", err)
    }
}</code>

ステップ 5: 最終コピー ステートメントを実行

<code class="go">_, err = stmt.Exec()
if err != nil {
    log.Fatalf("exec: %v", err)
}</code>

ステップ 6: ステートメントを閉じてトランザクションをコミット

<code class="go">stmt.Close()
err = txn.Commit()
if err != nil {
    log.Fatalf("commit: %v", err)
}</code>

このコードは、STDIN から PostgreSQL テーブルに行を効率的にインポートします。

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

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