diff --git a/templates/singleton/boil_queries.tpl b/templates/singleton/boil_queries.tpl
index 3e9ebb8..416de3d 100644
--- a/templates/singleton/boil_queries.tpl
+++ b/templates/singleton/boil_queries.tpl
@@ -82,7 +82,13 @@ func deleteOneToOneConflictsBeforeMerge(tx boil.Executor, conflict conflictingUn
 
 func deleteOneToManyConflictsBeforeMerge(tx boil.Executor, conflict conflictingUniqueKey, primaryID uint64, secondaryID uint64) error {
 	conflictingColumns := strmangle.SetComplement(conflict.columns, []string{conflict.objectIdColumn})
-
+    var objectIDIndex int
+    for i, column := range conflict.columns {
+        if column == conflict.objectIdColumn {
+            objectIDIndex = i
+            break
+        }
+    }
 	query := fmt.Sprintf(
 		"SELECT %s FROM %s WHERE %s IN (%s) GROUP BY %s HAVING count(distinct %s) > 1",
 		strings.Join(conflictingColumns, ","), conflict.table, conflict.objectIdColumn,
@@ -137,7 +143,7 @@ func deleteOneToManyConflictsBeforeMerge(tx boil.Executor, conflict conflictingU
 	//There could be multiple conflicting rows between ObjectIDs. In the SELECT query we grab each row and their column
 	// keys to be deleted here in a loop.
 	for _, rowToDelete := range rowsToRemove {
-		rowToDelete = append(rowToDelete, secondaryID)
+		rowToDelete = insert(rowToDelete, objectIDIndex, secondaryID)
 		_, err = tx.Exec(query, rowToDelete...)
 		if err != nil {
 			return errors.Err(err)
@@ -146,6 +152,10 @@ func deleteOneToManyConflictsBeforeMerge(tx boil.Executor, conflict conflictingU
 	return nil
 }
 
+func insert(slice []interface{}, index int, value interface{}) []interface{} {
+	return append(slice[:index], append([]interface{}{value}, slice[index:]...)...)
+}
+
 func checkMerge(tx boil.Executor, foreignKeys []foreignKey) error {
 	uniqueColumns := []interface{}{}
 	uniqueColumnNames := map[string]bool{}