-- =============================================================================
|
-- 2026-09-30 公司充值记录表新增字段:serial_no(充值流水号)、status(充值状态)
|
-- -----------------------------------------------------------------------------
|
-- 前置说明:
|
-- 1) Mycat 2.0 代理可广播 DDL,无需逐分表执行;ALTER 拆分为单条语句便于重复执行排错
|
-- 2) status 历史回填为 1(成功);serial_no 历史回填为 CR + id 左补 0(10 位)
|
-- 3) 新增唯一索引 uk_serial_no + 普通索引 idx_status
|
-- 4) 状态枚举:1=成功 2=失败 3=已退款
|
-- =============================================================================
|
SET NAMES utf8mb4;
|
|
USE charging_pile_other;
|
|
-- -----------------------------------------------------------------------------
|
-- 小节 A: DDL
|
-- -----------------------------------------------------------------------------
|
ALTER TABLE t_company_recharge_record
|
ADD COLUMN serial_no VARCHAR(32) DEFAULT NULL COMMENT '充值流水号' AFTER id;
|
|
ALTER TABLE t_company_recharge_record
|
ADD COLUMN status TINYINT(1) NOT NULL DEFAULT 1 COMMENT '充值状态 1=成功 2=失败 3=已退款' AFTER arrival_amount;
|
|
ALTER TABLE t_company_recharge_record
|
ADD UNIQUE KEY uk_serial_no (serial_no);
|
|
ALTER TABLE t_company_recharge_record
|
ADD KEY idx_status (status);
|
|
-- -----------------------------------------------------------------------------
|
-- 小节 B: 历史数据回填
|
-- -----------------------------------------------------------------------------
|
UPDATE t_company_recharge_record
|
SET serial_no = CONCAT('CR', LPAD(id, 10, '0'))
|
WHERE serial_no IS NULL OR serial_no = '';
|
|
-- -----------------------------------------------------------------------------
|
-- 小节 C: 回查
|
-- C1. 列存在 + 注释
|
-- SELECT column_name, column_type, is_nullable, column_default, column_comment
|
-- FROM information_schema.columns
|
-- WHERE table_schema = 'charging_pile_other' AND table_name = 't_company_recharge_record'
|
-- AND column_name IN ('serial_no','status');
|
-- C2. 索引存在
|
-- SELECT index_name, non_unique, column_name
|
-- FROM information_schema.statistics
|
-- WHERE table_schema = 'charging_pile_other' AND table_name = 't_company_recharge_record';
|
-- C3. 历史回填全填(含 NULL 不允许)
|
-- SELECT COUNT(*) AS empty_serial FROM charging_pile_other.t_company_recharge_record
|
-- WHERE serial_no IS NULL OR serial_no = '';
|
-- 期望:empty_serial=0
|
-- =============================================================================
|