-- Phase 3 DDL Migration Script -- 在已有数据库上执行,补充 Phase 3 新增的字段和表 -- dim_inventory_snapshot 如果已在之前执行中创建,则此脚本中的 CREATE TABLE 会报 "already exists",可忽略 USE youzandatahub; -- 1. dim_offline_store: 新增仓库编码和库存模式字段 ALTER TABLE dim_offline_store ADD COLUMN warehouse_code VARCHAR(64) DEFAULT NULL COMMENT '仓库编码(库存API必需)', ADD COLUMN stock_mode INT DEFAULT NULL COMMENT '库存模式:1独立,2共享总部,3共享门店仓,4进出存'; -- 2. dwd_trade_refund_detail: 新增退款诉求、阶段、买家ID、修改时间 ALTER TABLE dwd_trade_refund_detail ADD COLUMN refund_demand INT DEFAULT NULL COMMENT '退款诉求:1仅退款,2退货退款,3换货', ADD COLUMN refund_phase INT DEFAULT NULL COMMENT '退款阶段:1售中,2售后', ADD COLUMN yz_open_id VARCHAR(64) DEFAULT NULL COMMENT '买家yz_open_id', ADD COLUMN modified_time DATETIME DEFAULT NULL COMMENT '最后修改时间'; -- 3. 新建库存快照表 (如已存在则跳过) CREATE TABLE IF NOT EXISTS `dim_inventory_snapshot` ( `id` BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY, `warehouse_code` VARCHAR(64) NOT NULL COMMENT '仓库编码', `sku_code` VARCHAR(128) NOT NULL COMMENT 'SKU编码', `stock_num` DECIMAL(12,2) DEFAULT 0 COMMENT '实物库存', `freeze_num` DECIMAL(12,2) DEFAULT 0 COMMENT '实物占用', `available_num` DECIMAL(12,2) DEFAULT 0 COMMENT '可用库存(stock_num-freeze_num)', `snapshot_date` DATE NOT NULL COMMENT '快照日期', `etl_update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '中台同步时间', UNIQUE KEY `uk_snapshot` (`warehouse_code`, `sku_code`, `snapshot_date`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='每日库存快照表';