-- =========================================================================== -- 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';