Open MoDao1990217 opened 2 months ago
是的,两个是一个问题,当前版本 BulkCopy 未处理自动分表逻辑。
解决办法,指定分表名执行:
fsql.InsertOrUpdate
().AsTable("table1").SetSource(list).Execute...
是的,两个是一个问题,当前版本 BulkCopy 未处理自动分表逻辑。
解决办法,指定分表名执行:
fsql.InsertOrUpdate().AsTable("table1").SetSource(list).Execute...
指定也不行的,这是这个控制台写的demo版,我没有指定。生产代码,是指定了表名的,还是一样的错误。
问题描述及重现代码:
mysql InsertOrUpdate批量ExecuteMySqlBulkCopy时,如果表中没相关数据,则插入成功,如表中有相关数据,不会执行更新,而是直接报错误:3 rows were copied to Test_24032017 but only 0 were inserted.
此问题与:#1739 有相关性。https://github.com/dotnetcore/FreeSql/issues/1739
1379 是在分表时,如果不为分表时间字段添加默认值,就会出现问题。
而当前故障是给分表时间字段添加了默认值后,当数据库有值存在时,不会更新,而是直接报错。
调试出错位置在
下面提供复现demo
数据库版本
mysql 5.7
安装的Nuget包
Freesql 3.2.815 mysqlconnector 3.2.815
.net framework/. net core? 及具体版本
net 8 控制台程序 net 8 miniapi