PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Làm cách nào để nhập hàng vào Postgresql từ STDIN?

github.com/lib/pq tài liệu gói thực sự có ví dụ về cách làm những gì bạn muốn. Đây là văn bản điều chỉnh của toàn bộ chương trình:

package main

import (
    "database/sql"
    "log"

    "github.com/lib/pq"
)

func main() {
    records := [][]string{
        {"Rob", "Pike"},
        {"Ken", "Thompson"},
        {"Robert", "Griesemer"},
    }

    db, err := sql.Open("postgres", "dbname=postgres user=postgres password=postgres")
    if err != nil {
        log.Fatalf("open: %v", err)
    }
    if err = db.Ping(); err != nil {
        log.Fatalf("open ping: %v", err)
    }
    defer db.Close()

    txn, err := db.Begin()
    if err != nil {
        log.Fatalf("begin: %v", err)
    }

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

    for _, r := range records {
        _, err = stmt.Exec(r[0], r[1])
        if err != nil {
            log.Fatalf("exec: %v", err)
        }
    }

    _, err = stmt.Exec()
    if err != nil {
        log.Fatalf("exec: %v", err)
    }

    err = stmt.Close()
    if err != nil {
        log.Fatalf("stmt close: %v", err)
    }

    err = txn.Commit()
    if err != nil {
        log.Fatalf("commit: %v", err)
    }
}

Trên máy của tôi, thao tác này nhập 1 000 000 bản ghi trong khoảng 2 giây.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để tạo sự di chuyển đường ray để loại bỏ / thay đổi độ chính xác và tỷ lệ trên số thập phân?

  2. Tại sao không thể tạo bảng phân vùng

  3. nhà cung cấp cho PostgreSQL trong .net với sự hỗ trợ cho TransactionScope

  4. PostgreSQL:Lặp lại các hàng trong bảng với vòng lặp for, truy xuất giá trị cột dựa trên hàng hiện tại

  5. cửa sổ trượt sql - tìm giá trị tối đa trong khoảng thời gian