2026-10-08-sample-freight-no.sql 973 B

1234567891011121314151617181920212223242526272829303132333435
  1. -- 运费批次号:YF + YYYYMMDD + 001~999(按租户、按日递增)
  2. ALTER TABLE biz_sample_freight
  3. ADD COLUMN freight_no VARCHAR(32) NOT NULL DEFAULT '' COMMENT '运费批次号 YF+YYYYMMDD+序号' AFTER id;
  4. -- 按租户 + 创建日回填历史数据
  5. SET @grp := '';
  6. SET @seq := 0;
  7. UPDATE biz_sample_freight f
  8. INNER JOIN (
  9. SELECT
  10. id,
  11. CONCAT(
  12. 'YF',
  13. DATE_FORMAT(create_time, '%Y%m%d'),
  14. LPAD(
  15. @seq := IF(
  16. @grp = CONCAT(tenant_no, '|', DATE_FORMAT(create_time, '%Y%m%d')),
  17. @seq + 1,
  18. 1
  19. ),
  20. 3,
  21. '0'
  22. )
  23. ) AS new_no,
  24. @grp := CONCAT(tenant_no, '|', DATE_FORMAT(create_time, '%Y%m%d')) AS _grp
  25. FROM biz_sample_freight
  26. ORDER BY tenant_no ASC, create_time ASC, id ASC
  27. ) t ON f.id = t.id
  28. SET f.freight_no = t.new_no
  29. WHERE f.freight_no = '' OR f.freight_no IS NULL;
  30. ALTER TABLE biz_sample_freight
  31. ADD UNIQUE KEY uk_sample_freight_tenant_no (tenant_no, freight_no);