在记录中用顺序值0,1,2,3 ...填充整数字段FLD的SQL语句是什么?
它是Firebird数据库中的现有填充表,在另一个字段上具有主索引,但该主索引字段具有与FLD无关的非连续值。
目前对FLD没有任何限制,它应该保持这种状态。以前的值可以被覆盖。
答案 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;
如果再次运行该命令,请务必重置序列。