🐛 修正回填脚本快照校验的排序规则混用

This commit is contained in:
2026-10-27 22:22:54 +08:00
parent 12025311be
commit 231f4b9ac5
2 changed files with 6 additions and 4 deletions
@@ -22,8 +22,9 @@
-- ⑤ 逻辑删除的配载单同样回填:票面口径只有 driver_id IS NULL,不额外收窄范围;
-- 这些单不会回到列表,回填对它们无副作用。
-- ⑥ 跨表比较显式 COLLATE:blade_loading_manage.driver_phone / tenant_id 是 utf8mb4_0900_ai_ci,
-- blade_transport_driver.mobile / tenant_id 是 utf8mb4_general_ci;
-- blade_transport_driver.mobile / tenant_id 与存档表都是 utf8mb4_general_ci;
-- 不显式 COLLATE 会抛 ERROR 1267 Illegal mix of collations,只有真跑库才会暴露。
-- 第 2.4 节拿存档表比 driver_phone 同样要带 COLLATE utf8mb4_0900_ai_ci。
-- ⑦ 取数与写入全在 SQL 内完成,不经 JSON / 客户端中转:19 位雪花 ID 过 JSON 会丢精度。
-- ⑧ 分批执行(默认每批 500 行),每批独立提交,中断后重跑从剩余 NULL 行继续。
--
@@ -151,7 +152,7 @@ SELECT COUNT(*) AS wrong_driver_id
SELECT COUNT(*) AS snapshot_rewritten
FROM blade_loading_manage_driver_id_bak_20261028 b
JOIN blade_loading_manage w ON w.id = b.loading_id
WHERE NOT (w.driver_phone <=> b.driver_phone)
WHERE NOT (w.driver_phone <=> b.driver_phone COLLATE utf8mb4_0900_ai_ci)
OR NOT (w.update_time <=> b.update_time_before);
-- 2.5 冲突清单:同号多档案,这些行被跳过(期望 0 行;有输出就是「为什么没填」的答案)
@@ -24,8 +24,9 @@
-- ⑤ 逻辑删除的运单同样回填:票面口径只有 driver_id IS NULL,不额外收窄范围;
-- 这些单不会回到列表,回填对它们无副作用。
-- ⑥ 跨表比较显式 COLLATE:blade_waybill.driver_phone / tenant_id 是 utf8mb4_0900_ai_ci,
-- blade_transport_driver.mobile / tenant_id 是 utf8mb4_general_ci;
-- blade_transport_driver.mobile / tenant_id 与存档表都是 utf8mb4_general_ci;
-- 不显式 COLLATE 会抛 ERROR 1267 Illegal mix of collations,只有真跑库才会暴露。
-- 第 2.4 节拿存档表比 driver_phone 同样要带 COLLATE utf8mb4_0900_ai_ci。
-- ⑦ 取数与写入全在 SQL 内完成,不经 JSON / 客户端中转:19 位雪花 ID 过 JSON 会丢精度。
-- ⑧ 分批执行(默认每批 500 行),每批独立提交,中断后重跑从剩余 NULL 行继续。
--
@@ -154,7 +155,7 @@ SELECT COUNT(*) AS wrong_driver_id
SELECT COUNT(*) AS snapshot_rewritten
FROM blade_waybill_driver_id_bak_20261028 b
JOIN blade_waybill w ON w.id = b.waybill_id
WHERE NOT (w.driver_phone <=> b.driver_phone)
WHERE NOT (w.driver_phone <=> b.driver_phone COLLATE utf8mb4_0900_ai_ci)
OR NOT (w.update_time <=> b.update_time_before);
-- 2.5 冲突清单:同号多档案,这些行被跳过(期望 0 行;有输出就是「为什么没填」的答案)