| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- -- ===========================================================================
- -- S6-FUNC-004-TOOLING-LEDGER-CRUD-1 · verify
- --
- -- 契约(AutoVersionUpdate.RunVerifyScriptIfExists):逐条执行、取首行首列、
- -- 交 IsTruthy 判定,不真即抛。故:禁止 SET @var;每条语句自包含;
- -- 每条返回「通过为真」的标量(用 = 期望值 得 1/0),不得返回错误条数;
- -- 一条语句一个断言;文件以最后一条 SQL 的分号结束。
- -- ===========================================================================
- -- 01 · 唯一索引存在,且恰好由 (tenant_id, MoldTypeCode) 两列组成
- SELECT COUNT(*) = 2
- FROM information_schema.STATISTICS
- WHERE TABLE_SCHEMA = DATABASE()
- AND TABLE_NAME = 'MoldToolList'
- AND INDEX_NAME = 'uk_MoldToolList_tenant_type_code'
- AND COLUMN_NAME IN ('tenant_id', 'MoldTypeCode');
- -- 02 · 该索引是 UNIQUE(NON_UNIQUE = 0)
- SELECT COUNT(*) = 2
- FROM information_schema.STATISTICS
- WHERE TABLE_SCHEMA = DATABASE()
- AND TABLE_NAME = 'MoldToolList'
- AND INDEX_NAME = 'uk_MoldToolList_tenant_type_code'
- AND NON_UNIQUE = 0;
- -- 03 · 租户内业务编码无重复
- SELECT (SELECT COUNT(*) FROM (
- SELECT tenant_id, MoldTypeCode
- FROM MoldToolList
- GROUP BY tenant_id, MoldTypeCode
- HAVING COUNT(*) > 1) x) = 0;
- -- 04 · 未改动 tenant_id 可空性(本批只加索引,不做列变更)
- SELECT COUNT(*) = 1
- FROM information_schema.COLUMNS
- WHERE TABLE_SCHEMA = DATABASE()
- AND TABLE_NAME = 'MoldToolList'
- AND COLUMN_NAME = 'tenant_id'
- AND IS_NULLABLE = 'YES';
- -- 05 · 表列数仍为 24(未新增/删除任何列)
- SELECT COUNT(*) = 24
- FROM information_schema.COLUMNS
- WHERE TABLE_SCHEMA = DATABASE()
- AND TABLE_NAME = 'MoldToolList';
|