- 增加 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

@ -18,6 +18,14 @@ namespace FreeSql.PostgreSQL.Curd
{
}
internal string InternalTableAlias;
internal StringBuilder InternalSbSet => _set;
internal StringBuilder InternalSbSetIncr => _setIncr;
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);
@ -64,6 +72,7 @@ namespace FreeSql.PostgreSQL.Curd
{
if (_table.Primarys.Length == 1)
{
if (string.IsNullOrEmpty(InternalTableAlias) == false) caseWhen.Append(InternalTableAlias).Append(".");
caseWhen.Append(_commonUtils.QuoteReadColumn(_table.Primarys.First().Attribute.MapType, _commonUtils.QuoteSqlName(_table.Primarys.First().Attribute.Name)));
return;
}
@ -72,6 +81,7 @@ namespace FreeSql.PostgreSQL.Curd
foreach (var pk in _table.Primarys)
{
if (pkidx > 0) caseWhen.Append(" || ");
if (string.IsNullOrEmpty(InternalTableAlias) == false) caseWhen.Append(InternalTableAlias).Append(".");
caseWhen.Append(_commonUtils.QuoteReadColumn(pk.Attribute.MapType, _commonUtils.QuoteSqlName(pk.Attribute.Name))).Append("::varchar");
++pkidx;
}