レコード内の整数フィールド FLD に 0、1、2、3 の連続値を入力する SQL ステートメントは何でしょうか?
これは、別のフィールドにプライマリ インデックスを持つ Firebird データベース内の既存の入力済みテーブルですが、そのプライマリ インデックス フィールドには FLD とは関係のない連続していない値があります。
現在、FLD に制限はなく、そのままにしておく必要があります。以前の値は上書きできます。
さらに検索した後、私はそれを見つけました(SqlサーバーのID列に順次値を割り当てるの回答に感謝します):
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 は主キー フィールドです
データベースがサポートしている場合はシーケンスを作成し、次のようにします。
update TABLE set FLD = SEQUENCE.nextval;
コマンドを再度実行する場合は、必ずシーケンスをリセットしてください。