技術

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

関連記事

LINE BOTを無料で試してみました。heroku + Rails

こんばんは たまにはエンジニアっぽいところを見せようと思い、遅ればせながら、流行 …

no image

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

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

[Angular] has no exported member ‘XXXLoginComponent’.

どうも中田です Angularでコンポーネント名を階層構造にあった名前にしようと …

GooglePlayConsoleで「製品版として公開を開始」がグレーアウトして押せない!

こんにちは。田中です。 携わっていたアプリ開発案件ですが、ついに最初のリリースが …

[Rails]「どのブラウザからのアクセスか」を判別する方法

こんにちは。たなかです。 前回以下のような記事を書きました。   [R …