使用BulkUpdate报错,无法在源表中获得一组稳定的行 返回

//循环修改付款临时表状态大数据性能优化
_sqlSugarClient.Fastest<PM_PO_PAYMENT>()
.BulkUpdate(paysList,new string[] {"P_ID"}, new string[] { "P_SYNC_DATE", "P_SYNC_STATE" });
报错如下
UPDATE (SELECT TM."P_SYNC_DATE" TMP_SYNC_DATE,TE."P_SYNC_DATE" TEP_SYNC_DATE, TM."P_SYNC_STATE" TMP_SYNC_STATE,TE."P_SYNC_STATE" TEP_SYNC_STATE FROM "PM_PO_PAYMENT" TM,Temp1879451010729119744 TE WHERE TM."P_ID"=TE."P_ID")SET TMP_SYNC_DATE=TEP_SYNC_DATE,TMP_SYNC_STATE=TEP_SYNC_STATE
ORA-30926: 无法在源表中获得一组稳定的行
在数据库中检查过数据,没有主键字段重复的
热忱回答(7)
-
༺༒༻ VIP0
2025/1/15如果使用这种方法,不能百分百修改。1000条数据可能只有300多条修改成功
await _sqlSugarClient.Utilities.PageEachAsync(paysList, 1000, async pageList =>
{
var stgList = await _sqlSugarClient.Storageable(pageList).ToStorageAsync();
updatepayNum += await stgList.AsUpdateable.ExecuteCommandAsync();
});
0 回复 -
fate sta VIP0
2025/1/15@༺༒༻:这个是有可能的 , ID不存在就不会处理
0 回复 -
fate sta VIP0
2025/1/150 回复 -
༺༒༻ VIP0
2025/1/15@fate sta:我检查过了,ID是存在的,但是执行更新不成功。
使用BulkUpdate报错,无法在源表中获得一组稳定的行
0 回复 -
fate sta VIP0
2025/1/16https://www.donet5.com/Home/Doc?typeId=2366
按模版写个DEMO自测,有问题发出DEMO 删掉OBJ和BIN打包上传
0 回复 -
༺༒༻ VIP0
2025/1/16@fate sta:处理了,不是ID不存在,而是ID重复了
0 回复 -
fate sta VIP0
2025/1/16传给ORM需要先去重在传给ORM
0 回复