-- ===================================================================== -- 工单优先级(work_order.order_level)取值重定义迁移脚本 -- -- 旧:1-紧急 2-一般 3-低 -- 新:0-紧急 1-一般 2-低 -- -- 配套代码改动: -- com.zksy.ops.enums.WorkOrderLevelEnum URGENT(0) NORMAL(1) LOW(2) -- 前端 src/views/subSystem/pipeNetwork/ops/workOrder/workOrderDict.js -- 的 ORDER_LEVEL_MAP 同步改为 0/1/2 -- -- 注意:本脚本【仅可执行一次】! -- 迁移后合法值为 0/1/2,其中 1、2 与旧值重合, -- 重复执行会把「一般(1)」再次误改为「紧急(0)」。 -- 执行前请备份数据。 -- ===================================================================== -- 1) 更新字段注释 COMMENT ON COLUMN app_user.work_order.order_level IS '工单优先级:0-紧急 1-一般 2-低'; -- 2) 历史数据迁移(单条 UPDATE 原子完成,避免中间值被二次匹配) UPDATE app_user.work_order SET order_level = CASE order_level WHEN 1 THEN 0 -- 紧急 WHEN 2 THEN 1 -- 一般 WHEN 3 THEN 2 -- 低 ELSE order_level END WHERE order_level IN (1, 2, 3); -- 3) 兜底:非法/空值统一置为「一般(1)」 UPDATE app_user.work_order SET order_level = 1 WHERE order_level IS NULL OR order_level NOT IN (0, 1, 2); -- ===================================================================== -- 快速核验: -- SELECT order_level, count(*) FROM app_user.work_order GROUP BY order_level ORDER BY order_level; -- 期望只出现 0 / 1 / 2 三种取值。 -- =====================================================================