如何创建和填充新的ID列

时间:2014-10-30 10:34:51

标签: mysql sql

我有一个ID列没有自动递增,所以我的ID不统一而且一团糟。我需要创建一个新的ID字段,并用ID的1-max行填充它。

我不知道如何创建一个。我尝试了一些微不足道的事情,但是当它不应该是的时候我会得到错误。

4 个答案:

答案 0 :(得分:1)

这是一种方法:

declare @rn := 0;

update table t
    set newid = (@rn := @rn + 1)
    order by id;

您可能必须先添加列:

alter table t add column newid int;

答案 1 :(得分:0)

将当前ID散列为HashMap中的Keys,并且对于每个新键,该值应为1加上之前的值。 (或者你可以为每个新行设置一个类似i ++的计数器)。这些值可以作为您的新ID。

答案 2 :(得分:0)

在SQL Server中,只要您自动创建标识列,就会使用从1到n的值填充该列。

答案 3 :(得分:-2)

ALTER TABLE TABLENAME ADD RowId INT IDENTITY(1,1)

OR

ALTER TABLE TABLENAME ADD COLUMN Id INT NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY Id(Id)

这会为您的表添加额外的标识列。 希望它有所帮助。