diff --git a/Providers/FreeSql.Provider.Custom/PostgreSQL/Curd/CustomPostgreSQLInsertOrUpdate.cs b/Providers/FreeSql.Provider.Custom/PostgreSQL/Curd/CustomPostgreSQLInsertOrUpdate.cs index ed3716f17..03725d1ea 100644 --- a/Providers/FreeSql.Provider.Custom/PostgreSQL/Curd/CustomPostgreSQLInsertOrUpdate.cs +++ b/Providers/FreeSql.Provider.Custom/PostgreSQL/Curd/CustomPostgreSQLInsertOrUpdate.cs @@ -56,7 +56,7 @@ namespace FreeSql.Custom.PostgreSQL if (IdentityColumn != null && flagInsert) sql = insert.ToSql(); else { - var ocdu = new CustomPostgreSQLOnConflictDoUpdate(insert.InsertIdentity()); + var ocdu = new CustomPostgreSQLOnConflictDoUpdate(_tempPrimarys?.Length > 0 ? insert : insert.InsertIdentity()); ocdu._tempPrimarys = _tempPrimarys; var cols = _table.Columns.Values.Where(a => _updateSetDict.ContainsKey(a.Attribute.Name) || _tempPrimarys.Contains(a) == false && a.Attribute.CanUpdate == true && a.Attribute.IsIdentity == false && _updateIgnore.ContainsKey(a.Attribute.Name) == false); diff --git a/Providers/FreeSql.Provider.KingbaseES/Curd/KingbaseESInsertOrUpdate.cs b/Providers/FreeSql.Provider.KingbaseES/Curd/KingbaseESInsertOrUpdate.cs index 511c09617..13da52b11 100644 --- a/Providers/FreeSql.Provider.KingbaseES/Curd/KingbaseESInsertOrUpdate.cs +++ b/Providers/FreeSql.Provider.KingbaseES/Curd/KingbaseESInsertOrUpdate.cs @@ -56,7 +56,7 @@ namespace FreeSql.KingbaseES if (IdentityColumn != null && flagInsert) sql = insert.ToSql(); else { - var ocdu = new KingbaseESOnConflictDoUpdate(insert.InsertIdentity()); + var ocdu = new KingbaseESOnConflictDoUpdate(_tempPrimarys?.Length > 0 ? insert : insert.InsertIdentity()); ocdu._tempPrimarys = _tempPrimarys; var cols = _table.Columns.Values.Where(a => _updateSetDict.ContainsKey(a.Attribute.Name) || _tempPrimarys.Contains(a) == false && a.Attribute.CanUpdate == true && a.Attribute.IsIdentity == false && _updateIgnore.ContainsKey(a.Attribute.Name) == false); diff --git a/Providers/FreeSql.Provider.Odbc/PostgreSQL/Curd/OdbcPostgreSQLInsertOrUpdate.cs b/Providers/FreeSql.Provider.Odbc/PostgreSQL/Curd/OdbcPostgreSQLInsertOrUpdate.cs index e0a60d74e..340db0ce1 100644 --- a/Providers/FreeSql.Provider.Odbc/PostgreSQL/Curd/OdbcPostgreSQLInsertOrUpdate.cs +++ b/Providers/FreeSql.Provider.Odbc/PostgreSQL/Curd/OdbcPostgreSQLInsertOrUpdate.cs @@ -56,7 +56,7 @@ namespace FreeSql.Odbc.PostgreSQL if (IdentityColumn != null && flagInsert) sql = insert.ToSql(); else { - var ocdu = new OdbcPostgreSQLOnConflictDoUpdate(insert.InsertIdentity()); + var ocdu = new OdbcPostgreSQLOnConflictDoUpdate(_tempPrimarys?.Length > 0 ? insert : insert.InsertIdentity()); ocdu._tempPrimarys = _tempPrimarys; var cols = _table.Columns.Values.Where(a => _updateSetDict.ContainsKey(a.Attribute.Name) || _tempPrimarys.Contains(a) == false && a.Attribute.CanUpdate == true && a.Attribute.IsIdentity == false && _updateIgnore.ContainsKey(a.Attribute.Name) == false);