技術

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

関連記事

[ Ionic ]キーボード出現時にフッターを押し上げてしまう問題の対応

こんにちは。たなかです。 IonicFrameworkでモバイルアプリを開発させ …

no image

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

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

github500

[GitHub] 突然プッシュできなくなったときの確認事項

こんにちは。佐藤です 今回はGitHubに突然プッシュできなくなったときの確認事 …

no image

[Angular]複数のクエリパラメータを設定する

こんばんは angularで複数のクエリパラメータを設定したいと思います。 co …

no image

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

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