@@ -398,6 +398,8 @@ func buildBulkMergePLSQL(db *gorm.DB, createValues clause.Values, onConflictClau
398398 schema .PrioritizedPrimaryField .AutoIncrement &&
399399 strings .EqualFold (schema .PrioritizedPrimaryField .DBName , column .Name ) {
400400 isAutoIncrement = true
401+ } else if stmt .Schema .LookUpField (column .Name ).AutoIncrement {
402+ isAutoIncrement = true
401403 }
402404
403405 if ! isConflictColumn && ! isAutoIncrement {
@@ -520,7 +522,7 @@ func buildBulkMergePLSQL(db *gorm.DB, createValues clause.Values, onConflictClau
520522 " IF l_affected_records.COUNT > %d THEN :%d := l_affected_records(%d)." ,
521523 rowIdx , outParamIndex + 1 , rowIdx + 1 ,
522524 ))
523- writeQuotedIdentifier (& plsqlBuilder , column )
525+ db . QuoteTo (& plsqlBuilder , column )
524526 plsqlBuilder .WriteString ("; END IF;\n " )
525527 } else {
526528 // datatypes.JSON (text-based) -> serialize to CLOB
@@ -529,13 +531,13 @@ func buildBulkMergePLSQL(db *gorm.DB, createValues clause.Values, onConflictClau
529531 " IF l_affected_records.COUNT > %d THEN :%d := JSON_SERIALIZE(l_affected_records(%d)." ,
530532 rowIdx , outParamIndex + 1 , rowIdx + 1 ,
531533 ))
532- writeQuotedIdentifier (& plsqlBuilder , column )
534+ db . QuoteTo (& plsqlBuilder , column )
533535 plsqlBuilder .WriteString (" RETURNING CLOB); END IF;\n " )
534536 }
535537 } else {
536538 stmt .Vars = append (stmt .Vars , sql.Out {Dest : createTypedDestination (field )})
537539 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 )
539541 plsqlBuilder .WriteString ("; END IF;\n " )
540542 }
541543 outParamIndex ++
@@ -696,6 +698,8 @@ func shouldIncludeColumnInInsert(stmt *gorm.Statement, columnName string) bool {
696698 stmt .Schema .PrioritizedPrimaryField .AutoIncrement &&
697699 strings .EqualFold (stmt .Schema .PrioritizedPrimaryField .DBName , columnName ) {
698700 return false
701+ } else if stmt .Schema .LookUpField (columnName ).AutoIncrement {
702+ return false
699703 }
700704 return true
701705}
0 commit comments