65 lines
2.9 KiB
SQL
65 lines
2.9 KiB
SQL
-- =============================================================================
|
||
-- IT-0 验收校验脚本(表 13-10 验收③ / MS-0)
|
||
-- 预期:business_table_count = 59;missing_pk = 0;missing_gyid = 0
|
||
-- 口径:apt_* 36 + gy_*/gygl_* 18 + duty_* 5 = 59(CR-02 表 3-25、公寓端/03 表 3-8)
|
||
-- apt_ops_probe 为连通性探针表,显式排除,不计入 59 张。
|
||
-- =============================================================================
|
||
SELECT '=== 1. 业务表总数(应为 59)===' AS section;
|
||
SELECT COUNT(*) AS business_table_count
|
||
FROM information_schema.TABLES
|
||
WHERE TABLE_SCHEMA = DATABASE()
|
||
AND TABLE_TYPE = 'BASE TABLE'
|
||
AND (TABLE_NAME LIKE 'apt\_%' OR TABLE_NAME LIKE 'gy\_%'
|
||
OR TABLE_NAME LIKE 'gygl\_%' OR TABLE_NAME LIKE 'duty\_%')
|
||
AND TABLE_NAME <> 'apt_ops_probe';
|
||
|
||
SELECT '=== 2. 分前缀分布(应为 apt 36 / gy 17 / gygl 1 / duty 5)===' AS section;
|
||
SELECT CASE
|
||
WHEN TABLE_NAME LIKE 'apt\_%' THEN 'apt'
|
||
WHEN TABLE_NAME LIKE 'gygl\_%' THEN 'gygl'
|
||
WHEN TABLE_NAME LIKE 'gy\_%' THEN 'gy'
|
||
ELSE 'duty'
|
||
END AS prefix, COUNT(*) AS cnt
|
||
FROM information_schema.TABLES
|
||
WHERE TABLE_SCHEMA = DATABASE()
|
||
AND (TABLE_NAME LIKE 'apt\_%' OR TABLE_NAME LIKE 'gy\_%'
|
||
OR TABLE_NAME LIKE 'gygl\_%' OR TABLE_NAME LIKE 'duty\_%')
|
||
AND TABLE_NAME <> 'apt_ops_probe'
|
||
GROUP BY prefix ORDER BY prefix;
|
||
|
||
SELECT '=== 3. 缺主键的业务表(应为 0 行)===' AS section;
|
||
SELECT t.TABLE_NAME
|
||
FROM information_schema.TABLES t
|
||
WHERE t.TABLE_SCHEMA = DATABASE()
|
||
AND (t.TABLE_NAME LIKE 'apt\_%' OR t.TABLE_NAME LIKE 'gy\_%'
|
||
OR t.TABLE_NAME LIKE 'gygl\_%' OR t.TABLE_NAME LIKE 'duty\_%')
|
||
AND t.TABLE_NAME <> 'apt_ops_probe'
|
||
AND NOT EXISTS (
|
||
SELECT 1 FROM information_schema.TABLE_CONSTRAINTS c
|
||
WHERE c.TABLE_SCHEMA = t.TABLE_SCHEMA AND c.TABLE_NAME = t.TABLE_NAME
|
||
AND c.CONSTRAINT_TYPE = 'PRIMARY KEY'
|
||
);
|
||
|
||
SELECT '=== 4. 缺 gyid 列的业务表(应为 0 行)===' AS section;
|
||
SELECT t.TABLE_NAME
|
||
FROM information_schema.TABLES t
|
||
WHERE t.TABLE_SCHEMA = DATABASE()
|
||
AND (t.TABLE_NAME LIKE 'apt\_%' OR t.TABLE_NAME LIKE 'gy\_%'
|
||
OR t.TABLE_NAME LIKE 'gygl\_%' OR t.TABLE_NAME LIKE 'duty\_%')
|
||
AND t.TABLE_NAME <> 'apt_ops_probe'
|
||
AND NOT EXISTS (
|
||
SELECT 1 FROM information_schema.COLUMNS c
|
||
WHERE c.TABLE_SCHEMA = t.TABLE_SCHEMA AND c.TABLE_NAME = t.TABLE_NAME
|
||
AND c.COLUMN_NAME = 'gyid'
|
||
);
|
||
|
||
SELECT '=== 5. 外键数量(应为 0:docs/10 表 5-6 明确不建外键)===' AS section;
|
||
SELECT COUNT(*) AS foreign_key_count
|
||
FROM information_schema.TABLE_CONSTRAINTS
|
||
WHERE TABLE_SCHEMA = DATABASE() AND CONSTRAINT_TYPE = 'FOREIGN KEY';
|
||
|
||
SELECT '=== 6. 探针表与基线种子 ===' AS section;
|
||
SELECT (SELECT COUNT(*) FROM apt_ops_probe) AS probe_rows,
|
||
(SELECT COUNT(*) FROM apt_master_version WHERE source = 'LOCAL') AS local_baseline_rows,
|
||
(SELECT COUNT(*) FROM apt_ops_selfcheck) AS selfcheck_item_rows;
|