我有一个大表,需要在Teradata中添加行号。我在表上有一个名为row_num的列,但我需要用实际数字更新它。我试过使用下面的代码,但它不会起作用。
update database.time
set row_num = INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY
(START WITH 1
INCREMENT BY 1
MINVALUE 1
NO CYCLE))
任何帮助将不胜感激。谢谢!
答案 0 :(得分:0)
如果您有一个唯一标识每一行的标识列,您可以执行以下操作:
update t
set t.row_num = tt.seqnum
from database.time t,
(select t.*, row_number() over (order by id) as seqnum
from database.time t
) tt
where t.id = tt.id;
答案 1 :(得分:0)
update t
from mytable t
,(select t.*
,cast( row_number() over (order by id) as bigint) as rn
from mytable t
) tt
set row_num = tt.rn
where t.id = tt.id
;