From 231f4b9ac5cf989c5f6cee3c7ac0bd9062dbcd82 Mon Sep 17 00:00:00 2001 From: weicw <594098497@qq.com> Date: Tue, 27 Oct 2026 22:22:54 +0800 Subject: [PATCH] =?UTF-8?q?:bug:=20=E4=BF=AE=E6=AD=A3=E5=9B=9E=E5=A1=AB?= =?UTF-8?q?=E8=84=9A=E6=9C=AC=E5=BF=AB=E7=85=A7=E6=A0=A1=E9=AA=8C=E7=9A=84?= =?UTF-8?q?=E6=8E=92=E5=BA=8F=E8=A7=84=E5=88=99=E6=B7=B7=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../blade_loading_manage_driver_id_backfill_20261028.sql | 5 +++-- .../transport/blade_waybill_driver_id_backfill_20261028.sql | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/doc/sql/transport/blade_loading_manage_driver_id_backfill_20261028.sql b/doc/sql/transport/blade_loading_manage_driver_id_backfill_20261028.sql index 1d82e778..b2a42d36 100644 --- a/doc/sql/transport/blade_loading_manage_driver_id_backfill_20261028.sql +++ b/doc/sql/transport/blade_loading_manage_driver_id_backfill_20261028.sql @@ -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 行;有输出就是「为什么没填」的答案) diff --git a/doc/sql/transport/blade_waybill_driver_id_backfill_20261028.sql b/doc/sql/transport/blade_waybill_driver_id_backfill_20261028.sql index 99836734..22417a64 100644 --- a/doc/sql/transport/blade_waybill_driver_id_backfill_20261028.sql +++ b/doc/sql/transport/blade_waybill_driver_id_backfill_20261028.sql @@ -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 行;有输出就是「为什么没填」的答案)