update

2881099
2023-03-25 15:59:05 +08:00
parent 1c2a69aa1d
commit eea98410a3
6 changed files with 44 additions and 12 deletions

@@ -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. 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) ### bulk insert test reference (52 fields)

@@ -72,7 +72,13 @@ Disadvantages: does not support batch operations
## 4、BulkCopy ## 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. Principle: Use BulkCopy to insert data into a temporary table, and then use MERGE INTO to join the table.

@@ -300,9 +300,13 @@ SET a.`bcode` = b.`xcode`
## 12、BulkCopy Batch Update ## 12、BulkCopy Batch Update
FreeSql.Provider.SqlServer、FreeSql.Provider.MySqlConnector、FreeSql.Provider.PostgreSQL、FreeSql.Provider.Oracle | v3.2.693 | method | desc |
| FreeSql.Provider.SqlServer | ExecuteSqlBulkCopy | |
The extension methods ExecuteSqlBulkCopy, ExecuteMySqlBulkCopy, ExecutePgCopy, And ExecuteOracleBulkCopy are implemented to implement batch update (v3.2.693) | 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. Principle: Use BulkCopy to insert data into the temporary table, and then use UPDATE FROM JOIN to update the associated table.

@@ -303,9 +303,13 @@ SET a.`bcode` = b.`xcode`
## 12、BulkCopy 批量更新 ## 12、BulkCopy 批量更新
FreeSql.Provider.SqlServer、FreeSql.Provider.MySqlConnector、FreeSql.Provider.PostgreSQL、FreeSql.Provider.Oracle | v3.2.693 | 扩展方法 | 说明 |
| FreeSql.Provider.SqlServer | ExecuteSqlBulkCopy | |
分别实现了扩展方法 ExecuteSqlBulkCopy、ExecuteMySqlBulkCopy、ExecutePgCopy、ExecuteOracleBulkCopy 实现批量更新v3.2.693 | FreeSql.Provider.MySqlConnector | ExecuteMySqlBulkCopy | |
| FreeSql.Provider.Oracle | ExecuteOracleBulkCopy | |
| FreeSql.Provider.Dameng | ExecuteDmBulkCopy | 达梦 |
| FreeSql.Provider.PostgreSQL | ExecutePgCopy | |
| FreeSql.Provider.KingbaseES | ExecuteKdbCopy | 人大金仓 |
原理:使用 BulkCopy 将数据插入到临时表,再使用 UPDATE FROM JOIN 联表更新。 原理:使用 BulkCopy 将数据插入到临时表,再使用 UPDATE FROM JOIN 联表更新。

@@ -81,9 +81,15 @@ var t2 = fsql.Insert(items).ExecuteAffrows();
FreeSql 适配了每一种数据类型参数化,和不参数化的使用。批量插入建议关闭参数化功能,使用 .NoneParameter() 进行执行。 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个字段) ### 批量插入测试参考(52个字段)

@@ -73,7 +73,13 @@ repo.InsertOrUpdate(实体);
## 4、BulkCopy 批量插入或更新 ## 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 联表操作。 原理:使用 BulkCopy 将数据插入到临时表,再使用 MERGE INTO 联表操作。