亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

golang gorp插入多條記錄

golang gorp插入多條記錄

Go
桃花長相依 2022-01-10 10:27:36
使用 gorp 如何有效地插入多條記錄?即不是一次插入一個,是否有批量插入?var User struct {   Name string   Email string   Phone string}var users []Usersusers = buildUsers()dbMap.Insert(users...) //this fails compilation//I am forced to loop over users and insert one user at a time. Error Handling omitted for brevitygorp有更好的機制嗎?驅動程序是 MySQL。
查看完整描述

2 回答

?
HUH函數

TA貢獻1836條經驗 獲得超4個贊

當我發現了一些其他資源的原因,這并不工作,是interface{}和User{}沒有在內存中相同的布局,因此,他們的切片兼容的類型不。建議的解決方案是轉換[]User{}為[]interface{}in for 循環,如下所示:https : //golang.org/doc/faq#convert_slice_of_interface


仍然需要注意:您需要對DbMap.Insert()函數使用指針。


這是我解決它的方法:


s := make([]interface{}, len(users))

for i, v := range users {

    s[i] = &v

}

err := dbMap.Insert(s...)

注意這&v很重要,否則Insert會抱怨非指針。


查看完整回答
反對 回復 2022-01-10
?
慕森王

TA貢獻1777條經驗 獲得超3個贊

看起來 gorp 沒有任何東西可以為原始 SQL 或多值插入提供包裝器(這始終取決于 SQL 方言)。
您是否擔心速度或交易?如果沒有,我只會在 for 循環中進行插入。

查看完整回答
反對 回復 2022-01-10
  • 2 回答
  • 0 關注
  • 272 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號