diff --git a/session_insert.go b/session_insert.go index 09873b68..8aaba8ee 100644 --- a/session_insert.go +++ b/session_insert.go @@ -123,6 +123,12 @@ func (session *Session) insertMultipleStruct(rowsSlicePtr interface{}) (int64, e } fieldValue := *ptrFieldValue if col.IsAutoIncrement && utils.IsZero(fieldValue.Interface()) { + if session.engine.dialect.URI().DBType == schemas.ORACLE || session.engine.dialect.URI().DBType == schemas.DAMENG { + if i == 0 { + colNames = append(colNames, col.Name) + } + colPlaces = append(colPlaces, dialects.SeqName(tableName)+".nextval") + } continue } if col.MapType == schemas.ONLYFROMDB {