技術

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

関連記事

no image

【ionic】ナビゲーションバーがちらつく

どうも、中田です。 ionicでアプリを作っていて、なんかナビゲーションバーがち …

no image

nginxにX-Robots-Tagを設定する

こんにちは 検索結果にページが表示されないようにするために metaタグには & …

[rubyXL] Unknown child node for element

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

[ Rails ]ActiveRecord::RecordInvalidで怒られ、saveができない!

こんにちは。たなかです。 新しいプロジェクトの参画が決まって、今はrailsを書 …

[XCode] clang: error: linker command failed with exit code 1

どうも中田です 本日はシンプルに。 XCodeでbuild時に発生しました。 エ …