Golang使用CopyIn進(jìn)行批量創(chuàng)建的示例代碼
前言
本文介紹兩點:
- 如何在golang中使用copyin
- 如何對特殊字符jsonb進(jìn)行插入(需要顯式強制轉(zhuǎn)化為string類型)
package main
import (
?? ?"fmt"
?? ?"github.com/jinzhu/gorm"
?? ?"github.com/lib/pq"
)
func main() {
?? ?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 {
?? ??? ?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{}{
? ? ? ? ? ? "money": 19,
? ? ? ? ? ? "mother": "芳芳",
? ? ? ? }
? ? ? ? buf, _ := json.Marshal(attach)
?? ??? ?_, e := stmt.Exec(i, "張三", string(buf))
?? ??? ?if e != nil {
?? ??? ??? ?tx.Rollback()
?? ??? ??? ?panic(e)
?? ??? ?}
?? ?}
?? ?// stmt.Exec 必須空執(zhí)行一次表示結(jié)束。否則tx.Commit將阻塞
?? ?stmt.Exec()
?? ?tx.Commit()
}到此這篇關(guān)于Golang使用CopyIn進(jìn)行批量創(chuàng)建的示例代碼的文章就介紹到這了,更多相關(guān)Golang CopyIn批量創(chuàng)建內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
golang 定時任務(wù)方面time.Sleep和time.Tick的優(yōu)劣對比分析
這篇文章主要介紹了golang 定時任務(wù)方面time.Sleep和time.Tick的優(yōu)劣對比分析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-05-05
通過函數(shù)如何將golang?float64?保留2位小數(shù)(方法匯總)
這篇文章主要介紹了通過函數(shù)將golang?float64保留2位小數(shù),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-08-08
Golang微服務(wù)框架Kratos實現(xiàn)Kafka消息隊列的方法
消息隊列是大型分布式系統(tǒng)不可缺少的中間件,也是高并發(fā)系統(tǒng)的基石中間件,所以掌握好消息隊列MQ就變得極其重要,在本文當(dāng)中,您將了解到:什么是消息隊列?什么是Kafka?怎樣在微服務(wù)框架Kratos當(dāng)中應(yīng)用Kafka進(jìn)行業(yè)務(wù)開發(fā),需要的朋友可以參考下2023-09-09
Go語言函數(shù)的延遲調(diào)用(Deferred Code)詳解
本文將介紹Go語言函數(shù)和方法中的延遲調(diào)用,正如名稱一樣,這部分定義不會立即執(zhí)行,一般會在函數(shù)返回前再被調(diào)用,我們通過一些示例來了解一下延遲調(diào)用的使用場景2022-07-07
Golang內(nèi)存對齊的規(guī)則及實現(xiàn)
本文介紹了Golang內(nèi)存對齊的規(guī)則及實現(xiàn),通過合理的內(nèi)存對齊,可以提高程序的執(zhí)行效率和性能,通過對本文的閱讀,讀者可以更好地理解Golang內(nèi)存對齊的原理和技巧,并應(yīng)用于實際編程中2023-08-08
go函數(shù)的參數(shù)設(shè)置默認(rèn)值的方法
Go語言不直接支持函數(shù)參數(shù)默認(rèn)值,但可以通過指針、結(jié)構(gòu)體、變長參數(shù)和選項模式等方法模擬,下面給大家分享幾種方式模擬函數(shù)參數(shù)的默認(rèn)值功能,感興趣的朋友一起看看吧2025-01-01
Go中的關(guān)鍵字any interface是否會成為歷史
這篇文章主要為大家介紹了Go中的關(guān)鍵字any interface是否會成為歷史的講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07

