diff --git a/contrib/drivers/mssql/mssql_do_insert.go b/contrib/drivers/mssql/mssql_do_insert.go index 558c4500c..bd1920f1b 100644 --- a/contrib/drivers/mssql/mssql_do_insert.go +++ b/contrib/drivers/mssql/mssql_do_insert.go @@ -76,8 +76,13 @@ func (d *Driver) doMergeInsert( } foundPrimaryKey := false for _, primaryKey := range primaryKeys { - if _, ok := list[0][primaryKey]; ok { - foundPrimaryKey = true + for dataKey := range list[0] { + if strings.EqualFold(dataKey, primaryKey) { + foundPrimaryKey = true + break + } + } + if foundPrimaryKey { break } } diff --git a/contrib/drivers/pgsql/pgsql_do_insert.go b/contrib/drivers/pgsql/pgsql_do_insert.go index 691063fa4..4c2803a41 100644 --- a/contrib/drivers/pgsql/pgsql_do_insert.go +++ b/contrib/drivers/pgsql/pgsql_do_insert.go @@ -9,6 +9,7 @@ package pgsql import ( "context" "database/sql" + "strings" "github.com/gogf/gf/v2/database/gdb" "github.com/gogf/gf/v2/errors/gcode" @@ -37,9 +38,14 @@ func (d *Driver) DoInsert( ) } foundPrimaryKey := false - for _, conflictKey := range primaryKeys { - if _, ok := list[0][conflictKey]; ok { - foundPrimaryKey = true + for _, primaryKey := range primaryKeys { + for dataKey := range list[0] { + if strings.EqualFold(dataKey, primaryKey) { + foundPrimaryKey = true + break + } + } + if foundPrimaryKey { break } }