-- 卡片管理:t_charging_card 新增「完整卡号」字段 full_card_no。 -- 用途:完整卡号固定 16 位,不足 16 位在前面补 0;仅用于充电桩发起充电时查询卡片, -- 不在 web 前端展示(实体侧 @JsonIgnore 不对外返回)。 -- 执行环境:Mycat 2.0(MySQL 5.7.33 兼容),逻辑库 charging_pile_account。 -- 注意:脚本不含 SET @变量 / PREPARE(Mycat 不支持);ALTER 为 DDL 不可回滚,执行前建议备份。 USE charging_pile_account; -- 1. 新增完整卡号列(固定 16 位;仅充电查询,不对前端返回) ALTER TABLE `t_charging_card` ADD COLUMN `full_card_no` varchar(16) NOT NULL DEFAULT '' COMMENT '完整卡号(固定16位,不足前补0,仅充电桩刷卡查询)' AFTER `card_no`; -- 2. 历史数据回填:不足 16 位左补 0(card_no 已满 16 位保持不变;LPAD 幂等,可重复执行) UPDATE `t_charging_card` SET `full_card_no` = LPAD(`card_no`, 16, '0'); -- 3. 唯一索引:保证充电查询唯一且高效 ALTER TABLE `t_charging_card` ADD UNIQUE KEY `uk_full_card_no` (`full_card_no`);