2026-02-05 11:21:58 +08:00
|
|
|
|
-- ================================================================
|
2026-02-06 10:17:21 +08:00
|
|
|
|
-- V1.0.5 清理非湖北省区域数据(幂等,可重复执行)
|
|
|
|
|
|
-- 执行说明:先确认湖北省 region_id=42;若当前仅含湖北省则删除 0 行
|
|
|
|
|
|
-- PROD 对比: 当前 pg_region 仅湖北省及其下级(120 条),执行本脚本将删除 0 行
|
2026-02-05 11:21:58 +08:00
|
|
|
|
-- ================================================================
|
|
|
|
|
|
|
2026-02-06 10:17:21 +08:00
|
|
|
|
-- 0. 确认湖北省的 region_id(预期 region_id = 42)
|
2026-02-05 11:21:58 +08:00
|
|
|
|
SELECT region_id, region_name, parent_id, ancestors FROM pg_region WHERE region_name = '湖北省';
|
|
|
|
|
|
|
2026-02-06 10:17:21 +08:00
|
|
|
|
-- 1. 预检查:将要删除的行数(非湖北省及其下级的区域;湖北省 region_id=42,其下级 ancestors 以 0,42 开头)
|
|
|
|
|
|
SELECT COUNT(*) AS '待删除的区域数量(非湖北)' FROM pg_region
|
|
|
|
|
|
WHERE region_id != 42
|
2026-02-05 11:21:58 +08:00
|
|
|
|
AND ancestors NOT LIKE '0,42%';
|
|
|
|
|
|
|
2026-02-06 10:17:21 +08:00
|
|
|
|
-- 2. 物理删除:非湖北省及其下级(保留 region_id=42 及 ancestors 以 0,42 开头的行)
|
|
|
|
|
|
DELETE FROM pg_region
|
|
|
|
|
|
WHERE region_id != 42
|
2026-02-05 11:21:58 +08:00
|
|
|
|
AND ancestors NOT LIKE '0,42%';
|
|
|
|
|
|
|
2026-02-06 10:17:21 +08:00
|
|
|
|
-- 3. 删除其他省份根节点(parent_id=0 且 region_id 非 42)
|
|
|
|
|
|
DELETE FROM pg_region
|
|
|
|
|
|
WHERE parent_id = 0
|
2026-02-05 11:21:58 +08:00
|
|
|
|
AND region_id != 42;
|
|
|
|
|
|
|
|
|
|
|
|
-- 4. 验证结果
|
2026-02-06 10:17:21 +08:00
|
|
|
|
SELECT COUNT(*) AS '剩余区域数量' FROM pg_region;
|