| 12345678910111213141516171819202122232425262728293031323334 |
- -- 运输计划复制发群固定序号(租户内流水)
- -- 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;
|