-- ============================================================
|
-- 检验委托单孤儿数据清理(数据修复,非结构变更)
|
-- 生成日期:2026-11-06
|
--
|
-- 背景:客户库共有 24 条检验委托单,但委托下单只有 22 条。
|
-- 多出的 2 条委托单(LMSY-20260922-01、LMSY-20260929-试样)
|
-- 对应的下单记录(ins_order 10908、10938)已被删除,属于
|
-- 历史遗留的孤儿数据。当前删除下单的逻辑已会级联清理委托单,
|
-- 这两条是旧版本删除时留下的。
|
--
|
-- 已核实:这两条委托单没有明细、样品接收、报告、设备使用等
|
-- 任何关联记录,删除不影响其他数据。
|
--
|
-- 仅按委托编号精确匹配,且再次校验“下单不存在 + 无任何关联记录”
|
-- 后才删除,可重复执行(幂等)。
|
--
|
-- 执行前建议备份(在 LIMS 数据库内执行):
|
-- CREATE TABLE cnas_inspection_order_bak_20261106 AS
|
-- SELECT * FROM cnas_inspection_order;
|
-- ============================================================
|
|
START TRANSACTION;
|
|
DELETE io
|
FROM cnas_inspection_order io
|
LEFT JOIN ins_order o ON o.id = io.ins_order_id
|
WHERE o.id IS NULL
|
AND io.entrust_code IN ('LMSY-20260922-01', 'LMSY-20260929-试样')
|
AND NOT EXISTS (
|
SELECT 1 FROM cnas_inspection_order_detail d
|
WHERE d.inspection_order_id = io.inspection_order_id)
|
AND NOT EXISTS (
|
SELECT 1 FROM cnas_process_sample ps
|
WHERE ps.inspection_order_id = io.inspection_order_id)
|
AND NOT EXISTS (
|
SELECT 1 FROM cnas_process_report pr
|
WHERE pr.inspection_order_id = io.inspection_order_id)
|
AND NOT EXISTS (
|
SELECT 1 FROM cnas_process_order_device pod
|
WHERE pod.inspection_order_id = io.inspection_order_id);
|
|
COMMIT;
|
|
-- 校验(执行完可人工核对):
|
-- 委托单总数应与委托下单数一致(客户库应为 22):
|
-- SELECT COUNT(*) AS inspection_order_total FROM cnas_inspection_order;
|
-- SELECT COUNT(*) AS ins_order_total FROM ins_order;
|
--
|
-- 应返回 0 行:
|
-- SELECT io.inspection_order_id, io.entrust_code, io.ins_order_id
|
-- FROM cnas_inspection_order io
|
-- LEFT JOIN ins_order o ON o.id = io.ins_order_id
|
-- WHERE o.id IS NULL;
|