在MySQL中MySQLConnector中无符号BIGINT自增主键情况下,如何避免SqlSugar.Distribu 返回

SqlSugar 沟通中
3 130
该叫什么 老郭 发布于1周前
悬赏:0 飞吻

使用Fastest().BulkMerge()/BulkCopy(),数据库表的主键为BIGINT UNSIGNED,生成实体类中:

 [SugarColumn(IsPrimaryKey=true,IsIdentity=true,ColumnName="rahdwdata_id")]

  public ulong Rahdwdata_id {get;set;}

但是做压力测试时,报错:

2026-03-30 22:27:27.450 [ERR] 处理接收数据的Hdw52系列数据时出错:异常详细信息-->

SqlSugar.DistributedSystem.Snowflake.InvalidSystemClock: 服务器时间出现回退你可以使用StaticConfig.CustomSnowFlakeTimeErrorFunc=【自定义方法】处理让他不报错返回新ID,Clock moved backwards.  Refusing to generate id for 59 milliseconds

   at SqlSugar.DistributedSystem.Snowflake.IdWorker.NextId()

   at SqlSugar.DistributedSystem.Snowflake.IdWorker.getID()

   at SqlSugar.MySqlFastBuilder.CreateTempAsync[T](DataTable dt)

   at SqlSugar.FastestProvider`1._BulkUpdate(List`1 datas, String[] whereColumns, String[] updateColumns)

   at SqlSugar.FastestProvider`1.BulkUpdateAsync(List`1 datas, String[] whereColumns, String[] updateColumns)

   at SqlSugar.StorageableResult`1.BulkUpdateAsync(String[] UpdateColumns)

   at SqlSugar.FastBuilder.<>c__DisplayClass27_0`1.<<Merge>b__0>d.MoveNext()

--- End of stack trace from previous location ---

   at SqlSugar.ContextMethods.PageEachAsync[T,ResultType](IEnumerable`1 pageItems, Int32 pageSize, Func`2 action)

   at SqlSugar.FastBuilder.Merge[T](String tableName, DataTable dt, EntityInfo entityInfo, String[] whereColumns, String[] updateColumns, List`1 datas)

   at SqlSugar.FastestProvider`1._BulkMerge(List`1 datas, String[] updateColumns, String[] whereColumns)

   at SqlSugar.FastestProvider`1.BulkMergeAsync(List`1 datas, String[] whereColumns, String[] updateColumns)

   at SqlSugar.FastestProvider`1.BulkMerge(List`1 datas)

   at RACADA.ViewModels.MainWindowViewModel.Hdw32MapFromRecv(Span`1 data, Rcd30& rcd30, Hdw32& hdw32, Hdw_32_Raraws& hdw_32, String cmdTypeStr) in D:\GitWork\Src\Repos\GMT_RA\RACADA\RACADA\ViewModels\MainWindowViewModel.cs:line 6392

不知道怎么解决。

热忱回答3

  •  这个是雪花ID时间回调错误

    0 回复
  • 看文档:雪花ID 因为服务器时间回调的用法

    0 回复
  • 主要是本来就没用雪花ID,设置有BigInt Unsigned主键,Model中两个参数都设置了还报错。

    然后查了些说明要关这个提示,好些参数不能设置。最后还是用的设置StaticConfig.CustomSnowFlakeTimeErrorFunc = ()=>0。

    今晚再测试一下,看看还报错不。

    0 回复