分别使用分表GUID+表不存在会建表插入和大数据写入+表不存在会建表,普通分表插入引起嵌套层次太深 返回
SqlSugar
沟通中
8
162
wtwt 发布于1周前
悬赏:0 飞吻

if(deleteEntity.Any()) db.Deleteable<xxx>().AS(tableName1).Where(deleteEntity).ExecuteCommand(); db.Insertable(list).SplitTable().ExecuteCommand(); //db.Fastest<xxx>().SplitTable().BulkCopy(list);
使用大数据插入没有报错,引起报错的原因可能是什么呢
热忱回答(8)
-
fate sta VIP0
1周前//分表字段必须要有正确的值才能找对应的表db.Storageable(newOrderSpliteTest() { Name="A",Time=DateTime.Now }).SplitTable().ExecuteCommand();//内部1000条分页一次//BulkCopydb.Storageable(newOrder() { Name ="A", Time = DateTime.Now }).SplitTable().ExecuteSqlBulkCopy();//内部1000条分页一次分表插入或者更新这样用。
0 回复 -
wtwt VIP0
1周前@fate sta:这写法不能自动建表吧,
我上面的写法也是官网的列子吧,目前项目都是采用的分表不存在自动建表的写法0 回复 -
wtwt VIP0
1周前@fate sta:改为
db.Storageable(newOrderSpliteTest() { Name="A",Time=DateTime.Now }).SplitTable().ExecuteCommand();还是报错嵌套层次太深。
0 回复 -
wtwt VIP0
1周前大概问题是数据库性能原因,使用的达梦数据库,修改配置文件后没报错了。
后改回原配置,批量插入数据改为50条也没报错了
0 回复 -
fate sta VIP0
5天前db.Utilities.PageEach(allList, 100 ,pageList=> {//pageList每次只有100条});//异步用 PageEachAsyncawait db.Utilities.PageEachAsync(allList, 100, async pageList => {//要加awaitawait db.Insertable(pageList).ExecuteCommandAsync();//要加await});可以试着分页。
0 回复 -
wtwt VIP0
5天前@fate sta:分批是没问题的,就是每次数据还是得小于100条,如果没修改dm.ini
0 回复 -
fate sta VIP0
5天前或者用Useparamter方式插入。
0 回复 -
wtwt VIP0
4天前@fate sta:问题解决了。达梦自己驱动兼容性问题,没跨大版本也一样。保持数据库版本和驱动都是最新就行
0 回复