第一阶段任务,相关数据库定义。
IT-0 verify / verify (push) Canceled after 0s

This commit is contained in:
zfjia committed 2026-11-10 14:52:54 +08:00
1 parent 329e27b515
commit 8ffeb59dd4
33 files changed
+3427 -111

No files matched your search

+50
View File
@@ -0,0 +1,50 @@
-- =============================================================================
-- IT-0 / DV-0 分域增量 DDL —— 公共部分(幂等辅助 + 连通性探针表)
-- 目标库:apt_rev01 @ 127.0.0.1:3306 / MySQL 9.5
-- 设计口径:CR-02 表 3-25(59 张)、表 3-33(PK/UK/IDX/迁移顺序)、
-- 公寓端/03 表 3-8~3-15、公寓端/13 表 13-10 验收③(二次执行幂等)
-- 通用规则:
-- 1) InnoDB / utf8mb4 / utf8mb4_0900_ai_ci
-- 2) 代理主键 id bigint AUTO_INCREMENT;业务幂等键一律 UK 且以 gyid 打头
-- 3) 不建外键(docs/10 表 5-6:跨端/分库场景用应用层约束 + 对账兜底)
-- 4) 状态用 varchar 大写下划线枚举 + CHECK,不用 MySQL ENUM、不用数字码
-- 5) 金额 decimal(12,2)、比率 decimal(6,4)、时间 datetime(3)、禁止浮点
-- 6) deleted tinyint NOT NULL DEFAULT 0;create_time/update_time 审计列
-- 7) 所有 CREATE TABLE 带 IF NOT EXISTS,可重复执行
-- =============================================================================
SET NAMES utf8mb4;
SET SESSION sql_mode = 'STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION';
-- 幂等补列存储过程:供 07_patch_columns.sql 与后续迭代增量迁移使用
DROP PROCEDURE IF EXISTS apt_add_column_if_missing;
DELIMITER $$
CREATE PROCEDURE apt_add_column_if_missing(
IN p_table VARCHAR(64),
IN p_column VARCHAR(64),
IN p_ddl TEXT)
BEGIN
IF NOT EXISTS (
SELECT 1 FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = p_table
AND COLUMN_NAME = p_column
) THEN
SET @apt_ddl = CONCAT('ALTER TABLE `', p_table, '` ADD COLUMN ', p_ddl);
PREPARE apt_stmt FROM @apt_ddl;
EXECUTE apt_stmt;
DEALLOCATE PREPARE apt_stmt;
END IF;
END$$
DELIMITER ;
-- 连通性探针专用表(不计入 59 张业务表):只做 INSERT/SELECT/DELETE 闭环验证
CREATE TABLE IF NOT EXISTS apt_ops_probe (
id BIGINT NOT NULL AUTO_INCREMENT COMMENT '代理主键',
gyid VARCHAR(32) NOT NULL COMMENT '公寓隔离标识',
probe_key VARCHAR(64) NOT NULL COMMENT '探针幂等键',
payload VARCHAR(256) NULL COMMENT '探针载荷',
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '写入时刻',
PRIMARY KEY (id),
UNIQUE KEY uk_probe_gyid_key (gyid, probe_key),
KEY idx_probe_gyid_time (gyid, created_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='IT-0 连通性探针表(非业务表)';