74 lines
2.5 KiB
SQL
74 lines
2.5 KiB
SQL
SET NAMES utf8mb4;
|
||
SET CHARACTER SET utf8mb4;
|
||
SET character_set_client = utf8mb4;
|
||
SET character_set_connection = utf8mb4;
|
||
SET character_set_results = utf8mb4;
|
||
|
||
-- 迁移前检查 1:找不到对应本人 biz_id 的亲属记录
|
||
SELECT
|
||
child.biz_id AS child_biz_id,
|
||
child.name AS child_name,
|
||
child.person_id AS child_person_id,
|
||
child.related_num_id AS legacy_owner_biz_id
|
||
FROM ccdi_biz_intermediary child
|
||
LEFT JOIN ccdi_biz_intermediary parent
|
||
ON child.related_num_id = parent.biz_id
|
||
AND parent.person_sub_type = '本人'
|
||
WHERE child.person_sub_type <> '本人'
|
||
AND (child.related_num_id IS NULL OR parent.biz_id IS NULL);
|
||
|
||
-- 迁移前检查 2:本人 person_id 为空的记录
|
||
SELECT
|
||
child.biz_id AS child_biz_id,
|
||
child.name AS child_name,
|
||
child.person_id AS child_person_id,
|
||
child.related_num_id AS legacy_owner_biz_id,
|
||
parent.biz_id AS parent_biz_id,
|
||
parent.name AS parent_name,
|
||
parent.person_id AS parent_person_id
|
||
FROM ccdi_biz_intermediary child
|
||
JOIN ccdi_biz_intermediary parent
|
||
ON child.related_num_id = parent.biz_id
|
||
AND parent.person_sub_type = '本人'
|
||
WHERE child.person_sub_type <> '本人'
|
||
AND (parent.person_id IS NULL OR TRIM(parent.person_id) = '');
|
||
|
||
-- 迁移前检查 3:迁移后同一中介本人下 related_num_id + person_id 冲突的记录
|
||
SELECT
|
||
parent.person_id AS owner_person_id,
|
||
child.person_id AS relative_person_id,
|
||
COUNT(*) AS conflict_count,
|
||
GROUP_CONCAT(child.biz_id ORDER BY child.biz_id SEPARATOR ',') AS child_biz_ids
|
||
FROM ccdi_biz_intermediary child
|
||
JOIN ccdi_biz_intermediary parent
|
||
ON child.related_num_id = parent.biz_id
|
||
AND parent.person_sub_type = '本人'
|
||
WHERE child.person_sub_type <> '本人'
|
||
AND parent.person_id IS NOT NULL
|
||
AND TRIM(parent.person_id) <> ''
|
||
GROUP BY parent.person_id, child.person_id
|
||
HAVING COUNT(*) > 1;
|
||
|
||
START TRANSACTION;
|
||
|
||
UPDATE ccdi_biz_intermediary child
|
||
JOIN ccdi_biz_intermediary parent
|
||
ON child.related_num_id = parent.biz_id
|
||
SET child.related_num_id = parent.person_id
|
||
WHERE child.person_sub_type <> '本人';
|
||
|
||
COMMIT;
|
||
|
||
-- 迁移后检查:亲属记录应统一按本人证件号码关联
|
||
SELECT
|
||
child.biz_id AS child_biz_id,
|
||
child.related_num_id AS owner_person_id,
|
||
parent.biz_id AS parent_biz_id,
|
||
parent.person_id AS parent_person_id
|
||
FROM ccdi_biz_intermediary child
|
||
LEFT JOIN ccdi_biz_intermediary parent
|
||
ON child.related_num_id = parent.person_id
|
||
AND parent.person_sub_type = '本人'
|
||
WHERE child.person_sub_type <> '本人'
|
||
AND (child.related_num_id IS NULL OR parent.biz_id IS NULL);
|