| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- -- WIP-C3C.verify.sql
- SELECT (SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE()
- AND TABLE_NAME IN ('mdp_stg_s0_item_op_condition','bridge_item_op_condition',
- 'mdp_stg_s0_item_op_image','bridge_item_op_image')) = 4;
- SELECT IFNULL((SELECT GROUP_CONCAT(COLUMN_NAME ORDER BY SEQ_IN_INDEX) FROM information_schema.STATISTICS
- WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'bridge_item_op_condition'
- AND INDEX_NAME = 'uk_bridge_item_op_condition' AND NON_UNIQUE = 0), '')
- = 'tenant_id,item_code,code_type';
- SELECT IFNULL((SELECT GROUP_CONCAT(COLUMN_NAME ORDER BY SEQ_IN_INDEX) FROM information_schema.STATISTICS
- WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'bridge_item_op_image'
- AND INDEX_NAME = 'uk_bridge_item_op_image' AND NON_UNIQUE = 0), '')
- = 'tenant_id,item_code,op_code,file_type_code';
- -- 父键列名必须逐字 item_code
- SELECT (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE()
- AND TABLE_NAME IN ('bridge_item_op_condition','bridge_item_op_image')
- AND COLUMN_NAME = 'item_code') = 2;
- SELECT (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE()
- AND TABLE_NAME IN ('bridge_item_op_condition','bridge_item_op_image')
- AND COLUMN_NAME IN ('item_num','dim_item_id')) = 0;
- -- is_main 是属性不是键
- SELECT (SELECT COUNT(*) FROM information_schema.STATISTICS WHERE TABLE_SCHEMA = DATABASE()
- AND INDEX_NAME = 'uk_bridge_item_op_condition' AND COLUMN_NAME = 'is_main') = 0;
- SELECT (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE()
- AND TABLE_NAME = 'bridge_item_op_condition' AND COLUMN_NAME = 'is_main') = 1;
- -- element_code 必须与 item_code 并存且分离(证明未把要素编码当物料码)
- SELECT (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE()
- AND TABLE_NAME = 'bridge_item_op_condition'
- AND COLUMN_NAME IN ('item_code','element_code')) = 2;
- -- 🔴 image 桥绝不能有 source_updated_at(源零时间列)
- SELECT (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE()
- AND TABLE_NAME = 'bridge_item_op_image' AND COLUMN_NAME = 'source_updated_at') = 0;
- -- 而 condition 桥有(源 UpdateTime 存在)
- SELECT (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE()
- AND TABLE_NAME = 'bridge_item_op_condition' AND COLUMN_NAME = 'source_updated_at') = 1;
- -- LEGACY_SCOPE 不进唯一键
- SELECT (SELECT COUNT(*) FROM information_schema.STATISTICS WHERE TABLE_SCHEMA = DATABASE()
- AND INDEX_NAME IN ('uk_bridge_item_op_condition','uk_bridge_item_op_image')
- AND COLUMN_NAME IN ('domain_code','company_id','factory_id')) = 0;
- SELECT (SELECT COUNT(*) FROM `mdp_entity`
- WHERE `entity_code` = 'S0_ITEM_OP_CONDITION'
- AND `biz_key_expr` COLLATE utf8mb4_bin = 'ItemNum,CodeType'
- AND `source_table_name` COLLATE utf8mb4_bin = 'ItemOpCondition'
- AND `target_table_name` COLLATE utf8mb4_bin = 'mdp_stg_s0_item_op_condition'
- AND `status` = 1 AND `sync_mode` = 'FULL' AND `incr_column` IS NULL
- AND `batch_size` = 5000) = 1;
- SELECT (SELECT COUNT(*) FROM `mdp_entity`
- WHERE `entity_code` = 'S0_ITEM_OP_IMAGE'
- AND `biz_key_expr` COLLATE utf8mb4_bin = 'item_num,op,image_type_id'
- AND `source_table_name` COLLATE utf8mb4_bin = 'QualitySegmentImage'
- AND `target_table_name` COLLATE utf8mb4_bin = 'mdp_stg_s0_item_op_image'
- AND `status` = 1 AND `sync_mode` = 'FULL' AND `incr_column` IS NULL
- AND `batch_size` = 5000) = 1;
- -- 源侧前提:三个业务键分量当前无 NULL/空串(W6 风险的当前状态)
- SELECT (SELECT SUM(item_num IS NULL OR item_num = '' OR op IS NULL OR op = ''
- OR image_type_id IS NULL OR image_type_id = '') FROM `QualitySegmentImage`) = 0;
- SELECT (SELECT COUNT(*) FROM (SELECT 1 FROM `ItemOpCondition`
- GROUP BY `tenant_id`,`ItemNum`,`CodeType` HAVING COUNT(*) > 1) x) = 0;
|