首頁  >  文章  >  後端開發  >  如何使用 Go 的 pq 套件將資料從 STDIN 匯入到 PostgreSQL?

如何使用 Go 的 pq 套件將資料從 STDIN 匯入到 PostgreSQL?

Linda Hamilton
Linda Hamilton原創
2024-10-24 18:34:31883瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn