現有表 datamanagement 需添加 rownum 列,按 dataid 排序為 industryid='38' 的記錄生成連續行號 1,2,3…
-- 1. 添加列
ALTER TABLE datamanagement ADD COLUMN rownum INT;
-- 2. 會話變量模擬 ROW_NUMBER 更新
SET @rownum = 0;
UPDATE datamanagement
SET rownum = (@rownum := @rownum + 1)
WHERE industryid = '38'
ORDER BY dataid;
@rownum 是用戶定義變量,會話級生命周期。@rownum := @rownum + 1 每行遞增並賦值給 rownum。ORDER BY 保證按業務邏輯排序後再編號。UPDATE datamanagement
SET rownum = rn
FROM (
SELECT id, ROW_NUMBER() OVER (ORDER BY dataid) AS rn
FROM datamanagement
WHERE industryid = '38'
) AS t
WHERE datamanagement.id = t.id;
窗口函數更直觀、並行安全、性能更優。