在MySQL中MySQLConnector中无符号BIGINT自增主键情况下,如何避免SqlSugar.Distribu 返回
使用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)
-
fate sta VIP0
1周前这个是雪花ID时间回调错误
0 回复 -
fate sta VIP0
1周前看文档:雪花ID 因为服务器时间回调的用法
0 回复 -
老郭 VIP0
1周前主要是本来就没用雪花ID,设置有BigInt Unsigned主键,Model中两个参数都设置了还报错。
然后查了些说明要关这个提示,好些参数不能设置。最后还是用的设置StaticConfig.CustomSnowFlakeTimeErrorFunc = ()=>0。
今晚再测试一下,看看还报错不。
0 回复