You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于外键列更新行索引的SQL脚本需求

按部门分组填充RecordNo列的SQL更新脚本

需求:现有数据表中RecordNo列值均为NULL,需要按DeptId分组,为每组内的行填充从1开始递增的索引值(示例逻辑为同部门内按Id排序生成序号)。

不同数据库的实现脚本

MySQL 8.0+ 版本

WITH ranked_data AS (
    SELECT 
        Id,
        ROW_NUMBER() OVER (PARTITION BY DeptId ORDER BY Id) AS new_RecordNo
    FROM your_table_name
)
UPDATE your_table_name t
JOIN ranked_data rd ON t.Id = rd.Id
SET t.RecordNo = rd.new_RecordNo;

SQL Server 版本

WITH ranked_data AS (
    SELECT 
        Id,
        ROW_NUMBER() OVER (PARTITION BY DeptId ORDER BY Id) AS new_RecordNo
    FROM your_table_name
)
UPDATE ranked_data
SET RecordNo = new_RecordNo;

PostgreSQL 版本

UPDATE your_table_name t
SET RecordNo = rd.new_RecordNo
FROM (
    SELECT 
        Id,
        ROW_NUMBER() OVER (PARTITION BY DeptId ORDER BY Id) AS new_RecordNo
    FROM your_table_name
) rd
WHERE t.Id = rd.Id;

注意事项

  • 将脚本中的your_table_name替换为实际的数据表名称
  • ORDER BY Id可根据业务需求替换为其他排序字段(如创建时间、业务编号等),确保每组内的序号顺序符合预期

内容的提问来源于stack exchange,提问作者Henry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 13:30:59