mysql SQL将值为1的列添加到最后一行,但不作为主键

wkftcu5l  于 2023-03-17  发布在  Mysql
关注(0)|答案(1)|浏览(156)

如何将值为1...n的列添加到现有表的最后一行,但不作为主键

qzlgjiam

qzlgjiam1#

向现有表中添加一列,通过CTE创建一个临时结果集,该结果集包含一个列,该列包含原始表中每一行的行号。
行号是使用ROW_NUMBER()函数生成的,该函数为结果集中的每一行分配一个唯一的序号。然后使用SET语句向原始表中添加一个新列,并将该列中的每个值设置为临时结果集中对应的行号。
示例:

-- Add new column
ALTER TABLE MyTable
ADD RowNumber INT

-- Set values of new column to 1 to n
;WITH CTE AS 
(
     SELECT 
         *, 
         ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS RN
     FROM 
         MyTable
)
UPDATE CTE 
SET RowNumber = RN

此过程可帮助您向现有表中添加序号,而不必手动更新每一行。

相关问题