1.0.527.verify.sql 3.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. -- 1.0.527.verify.sql — 每条 SELECT 都必须返回 1
  2. -- ── ① 三张表已创建 ──────────────────────────────────────────────────────────────────
  3. SELECT (SELECT COUNT(*) FROM `information_schema`.`TABLES`
  4. WHERE `TABLE_SCHEMA` = DATABASE()
  5. AND `TABLE_NAME` IN ('mdp_stg_action_run','mdp_std_action_event','dwd_order_review_kpi')) = 3;
  6. -- ── ② tenant_id 必须是三张表唯一键的第一列(Principle 1 的结构性保证)──────────────
  7. SELECT (SELECT COUNT(*) FROM `information_schema`.`STATISTICS`
  8. WHERE `TABLE_SCHEMA` = DATABASE()
  9. AND `NON_UNIQUE` = 0
  10. AND `SEQ_IN_INDEX` = 1
  11. AND `COLUMN_NAME` = 'tenant_id'
  12. AND `INDEX_NAME` IN ('uk_stg_action_run','uk_std_action_event','uk_dwd_order_review_kpi')) = 3;
  13. -- ── ③ STG 满足 MdpStagingWriter canonical 契约(缺一列即写入期抛异常)───────────────
  14. SELECT (SELECT COUNT(*) FROM `information_schema`.`COLUMNS`
  15. WHERE `TABLE_SCHEMA` = DATABASE() AND `TABLE_NAME` = 'mdp_stg_action_run'
  16. AND `COLUMN_NAME` IN ('tenant_id','source_system','source_table','source_row_id',
  17. 'source_biz_key','raw_data','sync_batch_id','sync_time',
  18. 'process_status','create_time','update_time')) = 11;
  19. -- ── ④ STD 事件层关键列齐备(审计事实层:状态 + 起止时间 + 归因键)──────────────────
  20. SELECT (SELECT COUNT(*) FROM `information_schema`.`COLUMNS`
  21. WHERE `TABLE_SCHEMA` = DATABASE() AND `TABLE_NAME` = 'mdp_std_action_event'
  22. AND `COLUMN_NAME` IN ('tenant_id','action_run_id','action_code','biz_type','biz_id',
  23. 'biz_no','action_status','action_start_time','action_end_time',
  24. 'message','detail_json')) = 11;
  25. -- ── ⑤ DWD KPI 关键列齐备,且本批【不得】出现 TargetHours / kpi_status ──────────────
  26. SELECT (SELECT COUNT(*) FROM `information_schema`.`COLUMNS`
  27. WHERE `TABLE_SCHEMA` = DATABASE() AND `TABLE_NAME` = 'dwd_order_review_kpi'
  28. AND `COLUMN_NAME` IN ('tenant_id','sales_order_id','sales_order_no',
  29. 'review_start_time','review_end_time','actual_hours',
  30. 'calculation_status')) = 7;
  31. SELECT (SELECT COUNT(*) FROM `information_schema`.`COLUMNS`
  32. WHERE `TABLE_SCHEMA` = DATABASE() AND `TABLE_NAME` = 'dwd_order_review_kpi'
  33. AND `COLUMN_NAME` IN ('target_hours','kpi_status','factory_ref_id','order_type')) = 0;
  34. -- ── ⑥ MDP 实体已注册且配置正确(本库源 + INCR + 主游标 + biz_key)──────────────────
  35. SELECT (SELECT COUNT(*) FROM `mdp_entity`
  36. WHERE `entity_code` = 'S1_ACTION_RUN_LOG'
  37. AND `source_id` = 1
  38. AND `source_table_name` = 'aidop_action_run_log'
  39. AND `target_table_name` = 'mdp_stg_action_run'
  40. AND `sync_mode` = 'INCR'
  41. AND `incr_column` = 'start_time'
  42. AND `biz_key_expr` = 'id'
  43. AND `status` = 1) = 1;
  44. -- 实体注册必须唯一,重复执行迁移不得产生第二行
  45. SELECT (SELECT COUNT(*) FROM `mdp_entity` WHERE `entity_code` = 'S1_ACTION_RUN_LOG') = 1;
  46. -- ── ⑦ Snapshot Integrity:本批不得改造 mdp_std_so ───────────────────────────────────
  47. SELECT (SELECT COUNT(*) FROM `information_schema`.`COLUMNS`
  48. WHERE `TABLE_SCHEMA` = DATABASE() AND `TABLE_NAME` = 'mdp_std_so'
  49. AND `COLUMN_NAME` IN ('review_start_time','review_end_time','confirm_time',
  50. 'status_change_time','actual_hours')) = 0;