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