@@ -398,6 +398,8 @@ func buildBulkMergePLSQL(db *gorm.DB, createValues clause.Values, onConflictClau
398
398
schema .PrioritizedPrimaryField .AutoIncrement &&
399
399
strings .EqualFold (schema .PrioritizedPrimaryField .DBName , column .Name ) {
400
400
isAutoIncrement = true
401
+ } else if stmt .Schema .LookUpField (column .Name ).AutoIncrement {
402
+ isAutoIncrement = true
401
403
}
402
404
403
405
if ! isConflictColumn && ! isAutoIncrement {
@@ -520,7 +522,7 @@ func buildBulkMergePLSQL(db *gorm.DB, createValues clause.Values, onConflictClau
520
522
" IF l_affected_records.COUNT > %d THEN :%d := l_affected_records(%d)." ,
521
523
rowIdx , outParamIndex + 1 , rowIdx + 1 ,
522
524
))
523
- writeQuotedIdentifier (& plsqlBuilder , column )
525
+ db . QuoteTo (& plsqlBuilder , column )
524
526
plsqlBuilder .WriteString ("; END IF;\n " )
525
527
} else {
526
528
// datatypes.JSON (text-based) -> serialize to CLOB
@@ -529,13 +531,13 @@ func buildBulkMergePLSQL(db *gorm.DB, createValues clause.Values, onConflictClau
529
531
" IF l_affected_records.COUNT > %d THEN :%d := JSON_SERIALIZE(l_affected_records(%d)." ,
530
532
rowIdx , outParamIndex + 1 , rowIdx + 1 ,
531
533
))
532
- writeQuotedIdentifier (& plsqlBuilder , column )
534
+ db . QuoteTo (& plsqlBuilder , column )
533
535
plsqlBuilder .WriteString (" RETURNING CLOB); END IF;\n " )
534
536
}
535
537
} else {
536
538
stmt .Vars = append (stmt .Vars , sql.Out {Dest : createTypedDestination (field )})
537
539
plsqlBuilder .WriteString (fmt .Sprintf (" IF l_affected_records.COUNT > %d THEN :%d := l_affected_records(%d)." , rowIdx , outParamIndex + 1 , rowIdx + 1 ))
538
- writeQuotedIdentifier (& plsqlBuilder , column )
540
+ db . QuoteTo (& plsqlBuilder , column )
539
541
plsqlBuilder .WriteString ("; END IF;\n " )
540
542
}
541
543
outParamIndex ++
@@ -696,6 +698,8 @@ func shouldIncludeColumnInInsert(stmt *gorm.Statement, columnName string) bool {
696
698
stmt .Schema .PrioritizedPrimaryField .AutoIncrement &&
697
699
strings .EqualFold (stmt .Schema .PrioritizedPrimaryField .DBName , columnName ) {
698
700
return false
701
+ } else if stmt .Schema .LookUpField (columnName ).AutoIncrement {
702
+ return false
699
703
}
700
704
return true
701
705
}
0 commit comments