1.0.510.verify.sql 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. -- 1.0.510.verify.sql
  2. -- 契约(CURRENT.md > F-11):禁 SET @var · 每条返回 1/0 · 一条一断言 · 末条为真 SELECT。
  3. SELECT (SELECT COUNT(*) FROM information_schema.TABLES
  4. WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME IN ('mdp_stg_s0_item','dim_item')) = 2;
  5. SELECT IFNULL((SELECT GROUP_CONCAT(COLUMN_NAME ORDER BY SEQ_IN_INDEX)
  6. FROM information_schema.STATISTICS
  7. WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'mdp_stg_s0_item'
  8. AND INDEX_NAME = 'uk_stg_s0_item' AND NON_UNIQUE = 0), '')
  9. = 'tenant_id,source_system,source_table,source_row_id';
  10. SELECT IFNULL((SELECT GROUP_CONCAT(COLUMN_NAME ORDER BY SEQ_IN_INDEX)
  11. FROM information_schema.STATISTICS
  12. WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'dim_item'
  13. AND INDEX_NAME = 'uk_dim_item' AND NON_UNIQUE = 0), '')
  14. = 'tenant_id,item_code';
  15. SELECT (SELECT COUNT(*) FROM information_schema.STATISTICS
  16. WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'dim_item'
  17. AND INDEX_NAME = 'uk_dim_item'
  18. AND COLUMN_NAME IN ('domain_code','company_id','factory_id','legacy_source_id')) = 0;
  19. SELECT (SELECT COUNT(*) FROM information_schema.COLUMNS
  20. WHERE TABLE_SCHEMA = DATABASE()
  21. AND TABLE_NAME IN ('mdp_stg_s0_item','dim_item')
  22. AND COLUMN_NAME = 'tenant_id' AND IS_NULLABLE = 'NO') = 2;
  23. SELECT (SELECT COUNT(*) FROM information_schema.COLUMNS
  24. WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'dim_item'
  25. AND COLUMN_NAME = 'legacy_source_id' AND IS_NULLABLE = 'NO') = 1;
  26. SELECT (SELECT COUNT(*) FROM information_schema.STATISTICS
  27. WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'dim_item'
  28. AND INDEX_NAME = 'idx_dim_item_legacy') = 2;
  29. SELECT (SELECT COUNT(*) FROM information_schema.COLUMNS
  30. WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'dim_item'
  31. AND COLUMN_NAME IN ('net_weight','min_order_qty','max_order_qty','min_order_qty_sales',
  32. 'order_multiple','safety_stock','stock_turnover')
  33. AND NUMERIC_PRECISION = 18 AND NUMERIC_SCALE = 5) = 7;
  34. SELECT (SELECT COUNT(*) FROM information_schema.COLUMNS
  35. WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'dim_item'
  36. AND COLUMN_NAME IN ('supp_warranty','dea_controlled','expire_alarm_day','item_status')) = 0;
  37. SELECT (SELECT COUNT(*) FROM information_schema.COLUMNS
  38. WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'dim_item'
  39. AND COLUMN_NAME = 'expire_alarm_days') = 1;
  40. SELECT (SELECT COUNT(*) FROM `mdp_entity`
  41. WHERE `entity_code` = 'S0_ITEM'
  42. AND `biz_key_expr` COLLATE utf8mb4_bin = 'ItemNum'
  43. AND `source_table_name` COLLATE utf8mb4_bin = 'ItemMaster'
  44. AND `target_table_name` COLLATE utf8mb4_bin = 'mdp_stg_s0_item'
  45. AND `status` = 1 AND `sync_mode` = 'FULL' AND `incr_column` IS NULL
  46. AND `batch_size` = 50000) = 1;
  47. SELECT (SELECT COUNT(*) FROM `mdp_entity`
  48. WHERE `entity_code` LIKE 'S0\_%' AND `batch_size` <> 50000 AND `batch_size` <> 5000) = 0;
  49. SELECT (SELECT COUNT(*) FROM `mdp_entity`
  50. WHERE `entity_code` LIKE 'S0\_%' AND `batch_size` = 50000) = 1;
  51. SELECT (SELECT COUNT(*) FROM `mdp_entity`
  52. WHERE `source_table_name` = 'ItemMaster' AND `target_table_name` = 'mdp_stg_s0_item') = 1;