こんにちは
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)
これでバルクインサートができるようになりました。