Skip to content

Instantly share code, notes, and snippets.

@yutakahashi114
Created March 26, 2021 12:22
Show Gist options
  • Save yutakahashi114/e8466073551c3a431f334387add55aab to your computer and use it in GitHub Desktop.
Save yutakahashi114/e8466073551c3a431f334387add55aab to your computer and use it in GitHub Desktop.
func main() {
engine, err := xorm.NewEngine("postgres", "postgres://user:password@db/database?sslmode=disable")
if err != nil {
log.Println(err)
return
}
defer engine.Close()
engine.ShowSQL(true)
engine.SetMapper(core.GonicMapper{})
const count = 20000
us := make(users, 0, count)
for i := 0; i < count; i++ {
us = append(us, user{
FirstName: fmt.Sprintf("太郎%v", i),
LastName: fmt.Sprintf("テスト%v", i),
FirstNameKana: fmt.Sprintf("タロウ%v", i),
LastNameKana: fmt.Sprintf("テスト%v", i),
})
}
result, err := BulkInsert(engine, us, Returning("id"))
if err != nil {
log.Println(err)
return
}
log.Println(result)
engine.Unscoped().Where("id > ?", 0).Delete(user{})
}
type users []user
func (users) TableName() string {
return "users"
}
func (us users) Len() int {
return len(us)
}
func (us users) Columns() string {
return "first_name,last_name,first_name_kana,last_name_kana,version"
}
func (us users) Values() string {
return "(?,?,?,?,?)"
}
func (us users) Args(i int) []interface{} {
return []interface{}{us[i].FirstName, us[i].LastName, us[i].FirstNameKana, us[i].LastNameKana, 1}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment