2011-12-26 19 views
0

私はタスクテーブルを作成しようとしました。非常に頻繁にアイテムを追加/削除しました。 アプリケーションが稼動しているときに、キューに入れられたタスクを格納するために使用されたテーブルがそれをデキューします。テーブル(データベース)の自動インクリメント

アプリが中断(再開)されると、次のアプリのライフサイクルは未完了の仕事の作業を続け、新しい仕事をもう一度追加することがあります。

表は次のようになります。私たちが知っているように

table Tasks 
{ 
    int ID auto increment 

    // another columns 
} 

我々は前のレコードを削除した場合、IDは常にさえインクリメント。 IDがint.MaxValueに達した後、新しいレコードをもう一度追加した場合はどうなりますか? IDは1にリセットされ、2,3,4にインクリメントされます...未使用のIDを検索していますか? IDのロールバックを1(または任意の空きID)にもう一度する方法はありませんか? MySQLの

alter table tbl auto_increment=1; 

+1

DBengineはどちらですか? MySQL、SQLサーバー、Oracleなど(バージョンも役立ちます) – xQbert

答えて

0

しかし、あなたは何も独自に起こりません。このコマンドを実行する必要があります。更新/挿入の前にトリガとして構築してください。あなたのIDの最大値を超えるレコードが入力しようとすると、エラーが発生します。以前の記録が残っている場合、一意性または関係の問題を引き起こす可能性があります上記のやって :詳細

WARNINGとして

http://dev.mysql.com/doc/refman/5.1/en/example-auto-increment.html

関連する問題