1.0.553.verify.sql 1.3 KB

123456789101112131415161718192021222324
  1. -- 1.0.553.verify.sql — 每条 SELECT 都必须返回 1
  2. -- ① 唯一键存在,且恰好 2 列
  3. SELECT (SELECT COUNT(*) FROM information_schema.`STATISTICS`
  4. WHERE `TABLE_SCHEMA` = DATABASE() AND `TABLE_NAME` = 'mdp_inbound_grant'
  5. AND `INDEX_NAME` = 'uk_inbound_grant' AND `NON_UNIQUE` = 0) = 2;
  6. -- ② 列序完全正确(access_key 在前,entity_code 在后)
  7. SELECT (SELECT GROUP_CONCAT(`COLUMN_NAME` ORDER BY `SEQ_IN_INDEX` SEPARATOR ',')
  8. FROM information_schema.`STATISTICS`
  9. WHERE `TABLE_SCHEMA` = DATABASE() AND `TABLE_NAME` = 'mdp_inbound_grant'
  10. AND `INDEX_NAME` = 'uk_inbound_grant') = 'access_key,entity_code';
  11. -- ③ 数据层无重复(唯一键生效的必要条件,也防止有人事后禁用校验塞重复)
  12. SELECT (SELECT COUNT(*) FROM (
  13. SELECT 1 FROM `mdp_inbound_grant` GROUP BY `access_key`, `entity_code` HAVING COUNT(*) > 1
  14. ) d) = 0;
  15. -- ④ 授权行未被本次热修误删(只加索引,不动数据)
  16. SELECT (SELECT COUNT(*) FROM `mdp_inbound_grant`) > 0;
  17. -- ⑤ 其余四张 inbound 表未被波及(本批只改 grant 一张)
  18. SELECT (SELECT COUNT(*) FROM information_schema.`TABLES`
  19. WHERE `TABLE_SCHEMA` = DATABASE() AND `TABLE_NAME` LIKE 'mdp\_inbound\_%') = 5;