-- 运输计划复制发群固定序号(租户内流水) -- MySQL 5.7 -- 2026-10-09 -- 若列已存在,跳过 ALTER(重复执行会报 Duplicate column)。 ALTER TABLE `pl_plan` ADD COLUMN `copy_seq_no` int(11) DEFAULT NULL COMMENT '复制发群序号(租户内固定流水,首次复制时分配)' AFTER `plan_no`, ADD KEY `idx_pl_plan_tenant_copy_seq` (`tenant_no`, `copy_seq_no`); -- 历史回填:按租户 create_time ASC, id ASC,含软删;已有值不覆盖 -- MySQL 5.7 用户变量按租户编号(会话内执行) SET @prev_tenant := NULL; SET @rn := 0; UPDATE `pl_plan` p INNER JOIN ( SELECT t.id, t.seq_no FROM ( SELECT id, tenant_no, @rn := IF(@prev_tenant = tenant_no, @rn + 1, 1) AS seq_no, @prev_tenant := tenant_no AS _tenant FROM ( SELECT id, tenant_no, create_time FROM `pl_plan` ORDER BY tenant_no ASC, create_time ASC, id ASC ) ordered ) t ) ranked ON ranked.id = p.id SET p.`copy_seq_no` = ranked.seq_no WHERE p.`copy_seq_no` IS NULL;