技術

gormでバルクインサート

投稿日:

こんにちは

gormでレコードを作成する時は

user := User{Name: "Bob", Age: 22}

db.Create(&user)

のように作成します。

ですが複数レコードを作成する専用のメソッドは用意されていないので素のSQLを実行して作成します。

gormにはExecという素のSQLを実行できるメソッドがあるのでこれを利用します。

str := "INSERT INTO users (`name`, `age`) VALUES "
var s []string
for i, u := range us {
  var icon string
  if len(progresses) - 1 == i {
    icon = ";"
  } else {
    icon = ","
  }
  q := fmt.Sprintf("('%s', %d)%s", u.name, u.age, icon)
  s = append(s, q)
}

query := strings.Join(s, "")

db.Exec(str + query)

これでバルクインサートができるようになりました。

-技術

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

[Angular6] 一つのタグに複数の条件分岐を書く

こんにちは どうしても一つのタグに複数の条件分岐を書きたい時があるかと思います。 …

SwiftSwitch @ Raspberry Pi 3(ラズベリーパイ)

誕生日ということで会社からRaspberry Pi 3を頂きました! とりあえず …

no image

VivaldiのWEBパネルに登録して便利だったサイトを紹介する

こんばんは VivaldiのWEBパネルはとても便利です。 今回はWEBパネルに …

no image

document.querySelectorで色々なDOMを取得する

こんにちは javascriptでDOMを取得することは結構あるかと思います。 …

no image

CSSのpositionで要素を真ん中寄せにする(JS不要)

positionを使って要素を真ん中寄せにする時は、transform: tra …