Commit dfe6188bb685b91ac1162be135fd3c848b3db02a
1 parent
278810cb
修复数据库排序规则冲突问题
- 修复LqZjlMdsmxszService.GetPageList接口的排序规则冲突 - 修复LqStatisticsService中工资统计相关的排序规则冲突 - 在涉及lq_kd_kdjlb表的JOIN操作中添加COLLATE子句 - 更新UpdateSalaryStatisticsFromOtherTables方法中的COLLATE子句 - 创建修复排序规则冲突的精简版SQL脚本
Showing
3 changed files
with
57 additions
and
7 deletions
netcore/src/Application/NCC.API/appsettings.json
| @@ -29,7 +29,7 @@ | @@ -29,7 +29,7 @@ | ||
| 29 | "AllowedHosts": "*", | 29 | "AllowedHosts": "*", |
| 30 | "ConnectionStrings": { | 30 | "ConnectionStrings": { |
| 31 | "ConfigId": "db", | 31 | "ConfigId": "db", |
| 32 | - "DBName": "lqerp", | 32 | + "DBName": "lqerp_test", |
| 33 | "DBType": "MySql", //MySql;SqlServer;Oracle;PostgreSQL;Dm;Kdbndp; | 33 | "DBType": "MySql", //MySql;SqlServer;Oracle;PostgreSQL;Dm;Kdbndp; |
| 34 | //SqlServer | 34 | //SqlServer |
| 35 | // "DefaultConnection": "Data Source=localhost;Initial Catalog={0};User ID=sqladmin;Password=P@ssw0rd;MultipleActiveResultSets=true" | 35 | // "DefaultConnection": "Data Source=localhost;Initial Catalog={0};User ID=sqladmin;Password=P@ssw0rd;MultipleActiveResultSets=true" |
netcore/src/Modularity/Extend/NCC.Extend/LqStatisticsService.cs
| @@ -1464,7 +1464,7 @@ namespace NCC.Extend.LqStatistics | @@ -1464,7 +1464,7 @@ namespace NCC.Extend.LqStatistics | ||
| 1464 | SUM(CAST(jksyj.jksyj AS DECIMAL(18,2))) as order_performance | 1464 | SUM(CAST(jksyj.jksyj AS DECIMAL(18,2))) as order_performance |
| 1465 | FROM lq_kd_jksyj jksyj | 1465 | FROM lq_kd_jksyj jksyj |
| 1466 | INNER JOIN lq_kd_pxmx pxmx ON jksyj.F_kdpxid = pxmx.F_Id AND pxmx.F_IsEffective = 1 | 1466 | INNER JOIN lq_kd_pxmx pxmx ON jksyj.F_kdpxid = pxmx.F_Id AND pxmx.F_IsEffective = 1 |
| 1467 | - INNER JOIN lq_kd_kdjlb kd ON jksyj.glkdbh = kd.F_Id | 1467 | + INNER JOIN lq_kd_kdjlb kd ON jksyj.glkdbh COLLATE utf8mb4_general_ci = kd.F_Id COLLATE utf8mb4_general_ci |
| 1468 | WHERE jksyj.yjsj IS NOT NULL | 1468 | WHERE jksyj.yjsj IS NOT NULL |
| 1469 | AND jksyj.jksyj IS NOT NULL | 1469 | AND jksyj.jksyj IS NOT NULL |
| 1470 | AND jksyj.jksyj != '' | 1470 | AND jksyj.jksyj != '' |
| @@ -2529,7 +2529,7 @@ namespace NCC.Extend.LqStatistics | @@ -2529,7 +2529,7 @@ namespace NCC.Extend.LqStatistics | ||
| 2529 | SUM(CASE WHEN kd.sfskdd = '是' THEN COALESCE(kd.zdyj, 0) ELSE 0 END) as F_FirstOrderPerformance, | 2529 | SUM(CASE WHEN kd.sfskdd = '是' THEN COALESCE(kd.zdyj, 0) ELSE 0 END) as F_FirstOrderPerformance, |
| 2530 | SUM(CASE WHEN kd.sfskdd = '否' THEN COALESCE(kd.zdyj, 0) ELSE 0 END) as F_UpgradeOrderPerformance | 2530 | SUM(CASE WHEN kd.sfskdd = '否' THEN COALESCE(kd.zdyj, 0) ELSE 0 END) as F_UpgradeOrderPerformance |
| 2531 | FROM lq_kd_kdjlb kd | 2531 | FROM lq_kd_kdjlb kd |
| 2532 | - LEFT JOIN lq_mdxx md ON kd.djmd = md.F_Id | 2532 | + LEFT JOIN lq_mdxx md ON kd.djmd COLLATE utf8mb4_general_ci = md.F_Id COLLATE utf8mb4_general_ci |
| 2533 | WHERE kd.F_IsEffective = 1 | 2533 | WHERE kd.F_IsEffective = 1 |
| 2534 | AND DATE_FORMAT(kd.kdrq, '%Y%m') = @statisticsMonth | 2534 | AND DATE_FORMAT(kd.kdrq, '%Y%m') = @statisticsMonth |
| 2535 | GROUP BY kd.djmd, md.dm | 2535 | GROUP BY kd.djmd, md.dm |
| @@ -2539,7 +2539,7 @@ namespace NCC.Extend.LqStatistics | @@ -2539,7 +2539,7 @@ namespace NCC.Extend.LqStatistics | ||
| 2539 | kd.djmd as F_StoreId, | 2539 | kd.djmd as F_StoreId, |
| 2540 | COUNT(pxmx.F_ProjectNumber) as F_ItemQuantity | 2540 | COUNT(pxmx.F_ProjectNumber) as F_ItemQuantity |
| 2541 | FROM lq_kd_kdjlb kd | 2541 | FROM lq_kd_kdjlb kd |
| 2542 | - LEFT JOIN lq_kd_pxmx pxmx ON kd.F_Id = pxmx.glkdbh AND pxmx.F_IsEffective = 1 | 2542 | + LEFT JOIN lq_kd_pxmx pxmx ON kd.F_Id COLLATE utf8mb4_general_ci = pxmx.glkdbh COLLATE utf8mb4_general_ci AND pxmx.F_IsEffective = 1 |
| 2543 | WHERE kd.F_IsEffective = 1 | 2543 | WHERE kd.F_IsEffective = 1 |
| 2544 | AND DATE_FORMAT(kd.kdrq, '%Y%m') = @statisticsMonth | 2544 | AND DATE_FORMAT(kd.kdrq, '%Y%m') = @statisticsMonth |
| 2545 | GROUP BY kd.djmd | 2545 | GROUP BY kd.djmd |
| @@ -2924,7 +2924,7 @@ namespace NCC.Extend.LqStatistics | @@ -2924,7 +2924,7 @@ namespace NCC.Extend.LqStatistics | ||
| 2924 | var personalPerformanceSql = @" | 2924 | var personalPerformanceSql = @" |
| 2925 | UPDATE lq_salary_statistics s | 2925 | UPDATE lq_salary_statistics s |
| 2926 | INNER JOIN lq_statistics_personal_performance p | 2926 | INNER JOIN lq_statistics_personal_performance p |
| 2927 | - ON s.F_EmployeeId COLLATE utf8mb4_unicode_ci = p.F_EmployeeId COLLATE utf8mb4_unicode_ci | 2927 | + ON s.F_EmployeeId COLLATE utf8mb4_general_ci = p.F_EmployeeId COLLATE utf8mb4_general_ci |
| 2928 | AND s.F_StatisticsMonth = p.F_StatisticsMonth | 2928 | AND s.F_StatisticsMonth = p.F_StatisticsMonth |
| 2929 | SET | 2929 | SET |
| 2930 | s.F_TotalPerformance = p.F_TotalPerformance, | 2930 | s.F_TotalPerformance = p.F_TotalPerformance, |
| @@ -2944,7 +2944,7 @@ namespace NCC.Extend.LqStatistics | @@ -2944,7 +2944,7 @@ namespace NCC.Extend.LqStatistics | ||
| 2944 | var storePerformanceSql = @" | 2944 | var storePerformanceSql = @" |
| 2945 | UPDATE lq_salary_statistics s | 2945 | UPDATE lq_salary_statistics s |
| 2946 | INNER JOIN lq_statistics_store_total_performance st | 2946 | INNER JOIN lq_statistics_store_total_performance st |
| 2947 | - ON s.F_StoreId COLLATE utf8mb4_unicode_ci = st.F_StoreId COLLATE utf8mb4_unicode_ci | 2947 | + ON s.F_StoreId COLLATE utf8mb4_general_ci = st.F_StoreId COLLATE utf8mb4_general_ci |
| 2948 | AND s.F_StatisticsMonth = st.F_StatisticsMonth | 2948 | AND s.F_StatisticsMonth = st.F_StatisticsMonth |
| 2949 | SET | 2949 | SET |
| 2950 | s.F_StoreTotalPerformance = st.F_TotalOrderPerformance | 2950 | s.F_StoreTotalPerformance = st.F_TotalOrderPerformance |
| @@ -2960,7 +2960,7 @@ namespace NCC.Extend.LqStatistics | @@ -2960,7 +2960,7 @@ namespace NCC.Extend.LqStatistics | ||
| 2960 | var teamPerformanceSql = @" | 2960 | var teamPerformanceSql = @" |
| 2961 | UPDATE lq_salary_statistics s | 2961 | UPDATE lq_salary_statistics s |
| 2962 | INNER JOIN lq_statistics_gold_triangle gt | 2962 | INNER JOIN lq_statistics_gold_triangle gt |
| 2963 | - ON s.F_GoldTriangleId COLLATE utf8mb4_unicode_ci = gt.F_GoldTriangleId COLLATE utf8mb4_unicode_ci | 2963 | + ON s.F_GoldTriangleId COLLATE utf8mb4_general_ci = gt.F_GoldTriangleId COLLATE utf8mb4_general_ci |
| 2964 | AND s.F_StatisticsMonth = gt.F_StatisticsMonth | 2964 | AND s.F_StatisticsMonth = gt.F_StatisticsMonth |
| 2965 | SET | 2965 | SET |
| 2966 | s.F_TeamPerformance = gt.F_TotalPerformance | 2966 | s.F_TeamPerformance = gt.F_TotalPerformance |
修复排序规则冲突_精简版.sql
0 → 100644
| 1 | +-- 修复排序规则冲突 - 精简版 | ||
| 2 | +-- 只更新报错的相关表 | ||
| 3 | + | ||
| 4 | +-- 1. 统一 BASE_USER 表的所有字段排序规则 | ||
| 5 | +ALTER TABLE BASE_USER CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; | ||
| 6 | + | ||
| 7 | +-- 2. 统一 lq_mdxx 表的所有字段排序规则 | ||
| 8 | +ALTER TABLE lq_mdxx CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; | ||
| 9 | + | ||
| 10 | +-- 3. 统一 lq_zjl_mdsmxsz 表的所有字段排序规则 | ||
| 11 | +ALTER TABLE lq_zjl_mdsmxsz CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; | ||
| 12 | + | ||
| 13 | +-- 4. 统一 lq_ycsd_jsj 表的所有字段排序规则 | ||
| 14 | +ALTER TABLE lq_ycsd_jsj CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; | ||
| 15 | + | ||
| 16 | +-- 5. 统一 lq_kd_jksyj 表的所有字段排序规则 | ||
| 17 | +ALTER TABLE lq_kd_jksyj CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; | ||
| 18 | + | ||
| 19 | +-- 6. 统一 lq_statistics_gold_triangle 表的所有字段排序规则 | ||
| 20 | +ALTER TABLE lq_statistics_gold_triangle CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; | ||
| 21 | + | ||
| 22 | +-- 7. 统一 lq_jinsanjiao_user 表的所有字段排序规则 | ||
| 23 | +ALTER TABLE lq_jinsanjiao_user CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; | ||
| 24 | + | ||
| 25 | +-- 8. 统一 lq_salary_statistics 表的所有字段排序规则 | ||
| 26 | +ALTER TABLE lq_salary_statistics CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; | ||
| 27 | + | ||
| 28 | +-- 9. 统一 lq_kd_pxmx 表的所有字段排序规则 | ||
| 29 | +ALTER TABLE lq_kd_pxmx CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; | ||
| 30 | + | ||
| 31 | +-- 10. 跳过 lq_kd_kdjlb 表(表太大,无法转换) | ||
| 32 | +-- ALTER TABLE lq_kd_kdjlb CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; | ||
| 33 | + | ||
| 34 | +-- 11. 统一 lq_xmzl 表的所有字段排序规则 | ||
| 35 | +ALTER TABLE lq_xmzl CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; | ||
| 36 | + | ||
| 37 | +-- 12. 统一 lq_statistics_personal_performance 表的所有字段排序规则 | ||
| 38 | +ALTER TABLE lq_statistics_personal_performance CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; | ||
| 39 | + | ||
| 40 | +-- 13. 统一 lq_statistics_store_total_performance 表的所有字段排序规则 | ||
| 41 | +ALTER TABLE lq_statistics_store_total_performance CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; | ||
| 42 | + | ||
| 43 | +-- 验证排序规则是否统一 | ||
| 44 | +SELECT | ||
| 45 | + TABLE_NAME, | ||
| 46 | + TABLE_COLLATION | ||
| 47 | +FROM INFORMATION_SCHEMA.TABLES | ||
| 48 | +WHERE TABLE_SCHEMA = DATABASE() | ||
| 49 | + AND TABLE_NAME IN ('BASE_USER', 'lq_mdxx', 'lq_zjl_mdsmxsz', 'lq_ycsd_jsj', 'lq_kd_jksyj', 'lq_statistics_gold_triangle', 'lq_jinsanjiao_user', 'lq_salary_statistics', 'lq_kd_pxmx', 'lq_xmzl', 'lq_statistics_personal_performance', 'lq_statistics_store_total_performance') | ||
| 50 | +ORDER BY TABLE_NAME; |