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