-- ============================================ -- 修复 task_ratio 字段范围限制问题 -- 问题: decimal(5,4) 最大值为 9.9999,可能不足以存储异常数据 -- 解决: 扩大为 decimal(6,4),最大值 99.9999 -- ============================================ -- 1. 查看当前字段定义 DESC tb_vehicle_mileage_stats; -- 2. 修改字段类型 ALTER TABLE tb_vehicle_mileage_stats MODIFY COLUMN task_ratio DECIMAL(6,4) DEFAULT 0.0000 COMMENT '任务里程占比(0-1,异常时可能超出)'; -- 3. 验证修改结果 DESC tb_vehicle_mileage_stats; -- 4. 查询超出正常范围的数据(占比应在0-1之间) SELECT stats_id, vehicle_id, vehicle_no, stat_date, total_mileage, task_mileage, task_ratio FROM tb_vehicle_mileage_stats WHERE task_ratio > 1.0 OR task_ratio < 0.0 ORDER BY task_ratio DESC; -- 5. 修复异常数据(可选) -- UPDATE tb_vehicle_mileage_stats SET task_ratio = 1.0 WHERE task_ratio > 1.0; -- UPDATE tb_vehicle_mileage_stats SET task_ratio = 0.0 WHERE task_ratio < 0.0;