技術

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 を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

fullpage.jsでコンテンツを画面幅いっぱいでスクロールさせる。

fullpage.jsとは fullpage.jsは一つのコンテンツを画面いっぱ …

[rubyXL] Unknown child node for element

どうも中田です Excelのテンプレートファイルを読み込んで、値を差し込みダウン …

no image

HTMLエンティティを探すならHTML Arrowsがオススメ!

こんにちは htmlエンティティっていうのを聞いたことがありますか? アンパサン …

[Xcode]Provisioning ProfileのUUIDを確認する方法

どうも田中です。 iOSアプリの審査に向けて作業している最中、buildエラーに …

[Ionic] ionic serveでの動作確認でファイルの変更が反映されない!

こんにちは。たなかです。 参画しているプロジェクトで散々苦しめられているIoni …