如何使用顺序值填充表格列?

时间:2013-10-03 09:26:56

标签: sql firebird

在记录中用顺序值0,1,2,3 ...填充整数字段FLD的SQL语句是什么?

它是Firebird数据库中的现有填充表,在另一个字段上具有主索引,但该主索引字段具有与FLD无关的非连续值。
目前对FLD没有任何限制,它应该保持这种状态。以前的值可以被覆盖。

2 个答案:

答案 0 :(得分:1)

我在经过多次搜索后找到了它(感谢Assigning sequential values to a ID column in Sql server中的答案):

UPDATE tt_calendar c1
SET tt_taskindex=(SELECT COUNT(*) FROM tt_calendar c2 
WHERE c2.tt_calendar_id < c1.tt_calendar_id)+1

tt_calendar是我的表名
tt_taskindex是要更新的FLD tt_calendar_id是主键字段

答案 1 :(得分:0)

如果您的数据库支持它,则创建一个序列,然后:

update TABLE set FLD = SEQUENCE.nextval;

如果再次运行该命令,请务必重置序列。