sql >> データベース >  >> RDS >> PostgreSQL

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

    github.com/lib/pq パッケージドキュメントには、実際には があります。 あなたがやりたいことをする方法の。プログラム全体の適合テキストは次のとおりです。

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

    私のマシンでは、これは約2秒で1000000レコードをインポートします。



    1. Hadoop上のSqoop:NoSuchMethodError:com.google.common.base.Stopwatch.createStarted()

    2. MySQL外部キー-テーブル名を解決できません

    3. NHibernateで複数のSQLステートメントを実行する

    4. Oracleで平日を識別する方法は?