puzhibing
23 分钟以前 351757b4cc2227bf9a9613d712012fff70815da2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
-- 卡片管理: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`);