我有一张没有唯一ID的表格。我想创建一个存储过程,它将行的编号添加到每行作为ID,但我不知道如何获取当前行号。这是我到目前为止所做的事情
CREATE OR ALTER PROCEDURE INSERTID_MYTABLE
returns (
cnt integer)
as
declare variable rnaml_count integer;
begin
/* Procedure Text */
Cnt = 1;
for select count(*) from MYTABLE r into:rnaml_count do
while (cnt <= rnaml_count) do
begin
update MYTABLE set id=:cnt
where :cnt = /*how should I get the rownumber here from select??*/
Cnt = Cnt + 1;
suspend;
end
end
答案 0 :(得分:5)
我认为更好的方法是:
ID
)。GEN_ID
)。NEW.ID
为null
,就会从序列中获取新值。 Example。update table set ID = ID
。 (这将填充键。)ID
列更改为非空。奖金。触发器可以留在那里,因为它将在新插入的行中生成值。