かざいむ日誌

IT関係で知ったことなどを記事としてあげていきます。内容に不備や質問などあればぜひコメントをよせてください。

SQLiteでIDを使いまわしてエラーとなりました。

Androidのアプリでデータ取込機能を入れたらちょっとはまってしまったため、メモを残しておく。現象としてはデータを投入したらデータはないはずなのに一意制約違反で落ちる。

原因は、そのままずばり。SQLiteの設定で主キーの使い回しがNGなのに使い回してInsertしてたため。GreenDAOのテーブル定義でINTEGER PRIMARY KEYにAUTOINCREMENTを設定していたのでSQLiteが過去に使われたIDは利用しない作りになっていた。

AUTOINCREMENTを設定する場合としない場合の違い - SQLite入門