-- ============================================
|
-- 修复 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;
|