- 增加 PostgreSQL 特有功能 On Conflict Do Update 功能;

This commit is contained in:
28810
2019-11-13 16:21:30 +08:00
parent b43f9b6688
commit e0030b0c00
10 changed files with 492 additions and 35 deletions

View File

@ -23,6 +23,7 @@ namespace FreeSql.MySql.Curd
internal Dictionary<string, bool> InternalIgnore => _ignore;
internal void InternalResetSource(List<T1> source) => _source = source;
internal string InternalWhereCaseSource(string CsName, Func<string, string> thenValue) => WhereCaseSource(CsName, thenValue);
internal void InternalToSqlCaseWhenEnd(StringBuilder sb, ColumnInfo col) => ToSqlCaseWhenEnd(sb, col);
public override int ExecuteAffrows() => base.SplitExecuteAffrows(500, 3000);
public override List<T1> ExecuteUpdated() => base.SplitExecuteUpdated(500, 3000);

View File

@ -94,7 +94,11 @@ namespace FreeSql.MySql.Curd
sb.Append(field).Append(" = ").Append(field).Append(" + 1");
}
else if (_mysqlInsert.InternalIgnore.ContainsKey(col.Attribute.Name))
sb.Append(_mysqlUpdate.InternalWhereCaseSource(col.CsName, sqlval => sqlval).Trim());
{
var caseWhen = _mysqlUpdate.InternalWhereCaseSource(col.CsName, sqlval => sqlval).Trim();
sb.Append(caseWhen);
if (caseWhen.EndsWith(" END")) _mysqlUpdate.InternalToSqlCaseWhenEnd(sb, col);
}
else
{
var field = _mysqlInsert.InternalCommonUtils.QuoteSqlName(col.Attribute.Name);