私は、javaを介してインタフェースされる自動インクリメントの主キーを持つsqliteデータベースを持っています。 アプリケーションの理由から、自動生成された主キーをデータベースから使用することはできませんので、javaの各行にIDを作成する必要があります。JavaデータベースAutoIncrementプライマリキーアルゴリズム
私の質問は、そこにデータベースのためのユニークな整数のIDを作成するために従うことができるJavaのためのアルゴリズムがあるということです。
私はちょうど増分することができますが、私はロールバック、オーバーフロー、ギャップ充填のようなものを使用する必要があることを知っています。
"アプリケーションの理由"については、私は正確に何を意味するのか分かりませんが、多分sqliteのsqlite3_int64 sqlite3_last_insert_rowidがあなたを助け、あなたのIDを生成するためにデータベースを使うことを可能にするかもしれません...ドキュメントを見てください:http://www.sqlite.org/ c3ref/last_insert_rowid.html –
私たちのアプリケーションの設計上、データベースに書き込む前に私たちのレコードのidを知ることができる必要があります。sqlite3_last_insert_rowidは、sqliteがIDの作成を管理できるようにするなら、データベースで使用される自動インクリメントアルゴリズムの実装 – madlad
ギャップ充填が本当に必要ですか?もしそうでなければ、最も単純なアプローチは、Oracleのシーケンスのような何か、すなわち、順次IDをアトミックに取得する方法を実装することであろう。アプリケーションの負荷が均衡していますか?もしそうなら、私はコードでそれをしません。 –