diff --git a/orm/db.go b/orm/db.go index af05e686..8c3b82c2 100644 --- a/orm/db.go +++ b/orm/db.go @@ -386,16 +386,14 @@ func (d *dbBase) InsertMulti(q dbQuerier, mi *modelInfo, sind reflect.Value, bul // } if i == 1 { - vus, err := d.collectValues(mi, ind, mi.fields.dbcols, true, true, &names, tz) + vus, err := d.collectValues(mi, ind, mi.fields.dbcols, false, true, &names, tz) if err != nil { return cnt, err } values = make([]interface{}, bulk*len(vus)) nums += copy(values, vus) - } else { - - vus, err := d.collectValues(mi, ind, mi.fields.dbcols, true, true, nil, tz) + vus, err := d.collectValues(mi, ind, mi.fields.dbcols, false, true, nil, tz) if err != nil { return cnt, err } diff --git a/orm/orm_test.go b/orm/orm_test.go index 2df93729..3f6e1566 100644 --- a/orm/orm_test.go +++ b/orm/orm_test.go @@ -2032,9 +2032,26 @@ func TestInsertAuto(t *testing.T) { Email: "auto@gmail.com", } - sid, err := dORM.Insert(su) + nid, err := dORM.Insert(su) throwFail(t, err) - throwFail(t, AssertIs(id, sid)) + throwFail(t, AssertIs(nid, id)) + + users := []User{ + {ID: int(id + 100), UserName: "auto_100"}, + {ID: int(id + 110), UserName: "auto_110"}, + {ID: int(id + 120), UserName: "auto_120"}, + } + num, err := dORM.InsertMulti(100, users) + throwFail(t, err) + throwFail(t, AssertIs(num, 3)) + + u = &User{ + UserName: "auto_121", + } + + nid, err = dORM.Insert(u) + throwFail(t, err) + throwFail(t, AssertIs(nid, id+120+1)) } func TestUintPk(t *testing.T) {