PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak zaimportować wiersze do Postgresql ze standardu STDIN?

github.com/lib/pq dokumenty pakietu faktycznie zawierają przykład jak robić to, co chcesz. Oto dostosowany tekst całego programu:

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)
    }
}

Na moim komputerze importuje 1 000 000 rekordów w około 2 sekundy.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zapisywanie dużej ramki data.frame do PostgreSQL za pomocą R

  2. Postgresql json jak zapytanie

  3. Adnotacja Spring Data @CreatedDate nie działa dla mnie

  4. psycopg2 nie widzi mojej instancji PostgreSQL

  5. Parametry Npgsql 4.0 i wartości Null