From eea98410a3619e4d6f90101b848b07e9e702292b Mon Sep 17 00:00:00 2001 From: 2881099 <2881099@qq.com> Date: Sat, 25 Mar 2023 15:59:05 +0800 Subject: [PATCH] update --- Insert-Data.md | 10 ++++++++-- Insert-or-Update.md | 8 +++++++- Update-Data.md | 10 +++++++--- 修改.md | 10 +++++++--- 添加.md | 10 ++++++++-- 添加或修改.md | 8 +++++++- 6 files changed, 44 insertions(+), 12 deletions(-) diff --git a/Insert-Data.md b/Insert-Data.md index d9945f8..f201469 100644 --- a/Insert-Data.md +++ b/Insert-Data.md @@ -80,9 +80,15 @@ After the execution of the split, when the external transaction is not provided, FreeSql adapts to the use of parameterization and non-parameterization of each data type. It is recommended to turn off the parameterization function for batch insertion and use `.NoneParameter()` to execute it. -## 3. ExecuteSqlBulkCopy, ExecutePgCopy, ExecuteMySqlBulkCopy and ExecuteOracleBulkCopy +## 3. BulkCopy -Bulk Copy operation is implemented in the form of an extension method. For SqlServer/PostgreSQL/MySql/Oracle databases, the available packages are: FreeSql.Provider.SqlServer/FreeSql.Provider.PostgreSQL/FreeSql.Provider.MySqlConnector/FreeSql.Provider.Oracle. +| package name | method | desc | +| FreeSql.Provider.SqlServer | ExecuteSqlBulkCopy | | +| FreeSql.Provider.MySqlConnector | ExecuteMySqlBulkCopy | | +| FreeSql.Provider.Oracle | ExecuteOracleBulkCopy | | +| FreeSql.Provider.Dameng | ExecuteDmBulkCopy | 达梦 | +| FreeSql.Provider.PostgreSQL | ExecutePgCopy | | +| FreeSql.Provider.KingbaseES | ExecuteKdbCopy | 人大金仓 | ### bulk insert test reference (52 fields) diff --git a/Insert-or-Update.md b/Insert-or-Update.md index 6c6a76a..035b93d 100644 --- a/Insert-or-Update.md +++ b/Insert-or-Update.md @@ -72,7 +72,13 @@ Disadvantages: does not support batch operations ## 4、BulkCopy -FreeSql.Provider.SqlServer/FreeSql.Provider.Oracle extension method ExecuteSqlBulkCopy/ExecuteOracleBulkCopy, batch inserts or updates are implemented (v3.2.693). Other databases will be supplemented in the future. +| v3.2.693 | method | desc | +| FreeSql.Provider.SqlServer | ExecuteSqlBulkCopy | | +| FreeSql.Provider.MySqlConnector | ExecuteMySqlBulkCopy | | +| FreeSql.Provider.Oracle | ExecuteOracleBulkCopy | | +| FreeSql.Provider.Dameng | ExecuteDmBulkCopy | 达梦 | +| FreeSql.Provider.PostgreSQL | ExecutePgCopy | | +| FreeSql.Provider.KingbaseES | ExecuteKdbCopy | 人大金仓 | Principle: Use BulkCopy to insert data into a temporary table, and then use MERGE INTO to join the table. diff --git a/Update-Data.md b/Update-Data.md index 778ed9b..9bc8fa8 100644 --- a/Update-Data.md +++ b/Update-Data.md @@ -300,9 +300,13 @@ SET a.`bcode` = b.`xcode` ## 12、BulkCopy Batch Update -FreeSql.Provider.SqlServer、FreeSql.Provider.MySqlConnector、FreeSql.Provider.PostgreSQL、FreeSql.Provider.Oracle - -The extension methods ExecuteSqlBulkCopy, ExecuteMySqlBulkCopy, ExecutePgCopy, And ExecuteOracleBulkCopy are implemented to implement batch update (v3.2.693) +| v3.2.693 | method | desc | +| FreeSql.Provider.SqlServer | ExecuteSqlBulkCopy | | +| FreeSql.Provider.MySqlConnector | ExecuteMySqlBulkCopy | | +| FreeSql.Provider.Oracle | ExecuteOracleBulkCopy | | +| FreeSql.Provider.Dameng | ExecuteDmBulkCopy | 达梦 | +| FreeSql.Provider.PostgreSQL | ExecutePgCopy | | +| FreeSql.Provider.KingbaseES | ExecuteKdbCopy | 人大金仓 | Principle: Use BulkCopy to insert data into the temporary table, and then use UPDATE FROM JOIN to update the associated table. diff --git a/修改.md b/修改.md index af79b52..94b237e 100644 --- a/修改.md +++ b/修改.md @@ -303,9 +303,13 @@ SET a.`bcode` = b.`xcode` ## 12、BulkCopy 批量更新 -FreeSql.Provider.SqlServer、FreeSql.Provider.MySqlConnector、FreeSql.Provider.PostgreSQL、FreeSql.Provider.Oracle - -分别实现了扩展方法 ExecuteSqlBulkCopy、ExecuteMySqlBulkCopy、ExecutePgCopy、ExecuteOracleBulkCopy 实现批量更新(v3.2.693) +| v3.2.693 | 扩展方法 | 说明 | +| FreeSql.Provider.SqlServer | ExecuteSqlBulkCopy | | +| FreeSql.Provider.MySqlConnector | ExecuteMySqlBulkCopy | | +| FreeSql.Provider.Oracle | ExecuteOracleBulkCopy | | +| FreeSql.Provider.Dameng | ExecuteDmBulkCopy | 达梦 | +| FreeSql.Provider.PostgreSQL | ExecutePgCopy | | +| FreeSql.Provider.KingbaseES | ExecuteKdbCopy | 人大金仓 | 原理:使用 BulkCopy 将数据插入到临时表,再使用 UPDATE FROM JOIN 联表更新。 diff --git a/添加.md b/添加.md index 3482d0d..73f4402 100644 --- a/添加.md +++ b/添加.md @@ -81,9 +81,15 @@ var t2 = fsql.Insert(items).ExecuteAffrows(); FreeSql 适配了每一种数据类型参数化,和不参数化的使用。批量插入建议关闭参数化功能,使用 .NoneParameter() 进行执行。 -## 3、ExecuteSqlBulkCopy、ExecutePgCopy、ExecuteMySqlBulkCopy、ExecuteOracleBulkCopy +## 3、BulkCopy -Bulk Copy 操作以扩展方法的形式实现,针对 SqlServer/PostgreSQL/MySql/Oracle 数据库,可用的包:FreeSql.Provider.SqlServer/FreeSql.Provider.PostgreSQL/FreeSql.Provider.MySqlConnector/FreeSql.Provider.Oracle。 +| 程序包 | 扩展方法 | 说明 | +| FreeSql.Provider.SqlServer | ExecuteSqlBulkCopy | | +| FreeSql.Provider.MySqlConnector | ExecuteMySqlBulkCopy | | +| FreeSql.Provider.Oracle | ExecuteOracleBulkCopy | | +| FreeSql.Provider.Dameng | ExecuteDmBulkCopy | 达梦 | +| FreeSql.Provider.PostgreSQL | ExecutePgCopy | | +| FreeSql.Provider.KingbaseES | ExecuteKdbCopy | 人大金仓 | ### 批量插入测试参考(52个字段) diff --git a/添加或修改.md b/添加或修改.md index c8e80d7..24bf195 100644 --- a/添加或修改.md +++ b/添加或修改.md @@ -73,7 +73,13 @@ repo.InsertOrUpdate(实体); ## 4、BulkCopy 批量插入或更新 -FreeSql.Provider.SqlServer/FreeSql.Provider.Oracle 提供扩展方法 ExecuteSqlBulkCopy/ExecuteOracleBulkCopy 实现了批量插入或更新(v3.2.693),其他数据库未来补充。 +| v3.2.693 | 扩展方法 | 说明 | +| FreeSql.Provider.SqlServer | ExecuteSqlBulkCopy | | +| FreeSql.Provider.MySqlConnector | ExecuteMySqlBulkCopy | | +| FreeSql.Provider.Oracle | ExecuteOracleBulkCopy | | +| FreeSql.Provider.Dameng | ExecuteDmBulkCopy | 达梦 | +| FreeSql.Provider.PostgreSQL | ExecutePgCopy | | +| FreeSql.Provider.KingbaseES | ExecuteKdbCopy | 人大金仓 | 原理:使用 BulkCopy 将数据插入到临时表,再使用 MERGE INTO 联表操作。