开发者

Golang使用CopyIn进行批量创建的示例代码

开发者 https://www.devze.com 2023-11-21 11:08 出处:网络 作者: fwhezfwhez
前言 本文介绍两点: 如何在golang中使用copyin如何对特殊字符jsonb进行插入(需要显式强制转化为string类型)

前言

本文介绍两点:

  • 如何在golang中使用copyin
  • 如何对特殊字符jsonb进行插入(需要显式强制转化为string类型)
pajsckage main
import (
 "fmt"
 "github.com/jinzhu/gorm"
 "github.com/lib/pq"
)
func mwww.devze.comain() {
 fmt.Println(1)
 dbConfig := fmt.Sprintf("host=localhost user=postgres dbname=postgres sslmode=disable password=123456 application_name=xxx")
 fmt.Println("db:", dbConfig)
 engine, e := gorm.Open("postgres", dbConfig)
 if e != nil {
  panic(e)
 }
 driverdb := engine.DB()
 tx,e := driverdb.Begin()
 if e!=nil {android
  panic(e)
 }
  //编程 表名为test
  // 字段为 age-integer, name-varchar, attach-jsonb
 stmt, e := tx.Prepare(pq.CopyIn("test", "age","name", "attach"))
 if e != nil {
  tx.Rollback()
  panic(e)
 }
 defer stmt.Close()
 for i := 0; i < 10000; i++ {
   var attach = map[string]interface{}{
     android "money": 19,
      "mother": "芳芳",
    }
    buf, _ := json.Marshal(attach)
  _, e := stmt.Exec(i, "张三", string(buf))
  if e != nil {
   tx.Rollback()
   panic(e)
  }
 }
 // stmt.Exec 必须空执行一次表示结束。否则tx.Commit将阻塞
 stmt.Exec()
 tx.Commit()
}

到此这篇关于Golang使用CopyIn进行批量创建的示例代码的文章就介绍到这了,更多相关Golang CopyIn批量创建内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号