主にWEB関係の話。

スポンサード リンク

SQLite3でオートインクリメントする方法

SQLiteのオートインクリメントについて。

SQLiteでオートインクリメント風の事をするには・・・

CREATE TABLE example_table( id  INTEGER PRIMARY KEY)

と、すれば良いのだが…
これでは、
1 一郎
2 二郎
3 三郎
4 四郎
とレコードが存在した場合に、

DELETE FROM  example_table WHERE  id=4

とした後、

INSERT INTO example_table SET  name=五郎

とすると、

1 一郎
2 二郎
3 三郎
4 五郎

となり、削除したidである4が再利用されてしまう。
これではマズい場面というのも結構あるし、MySQLなどを前提に組んだプログラムをSQLiteで使う場合に予期せぬバグが生じる可能性がある。

SQLite2では諦めるしか無いようだが、SQLite3では、

CREATE TABLE example_table( id  INTEGER PRIMARY KEY AUTOINCREMENT)

という感じでAUTOINCREMENTを付加してやることで、再利用の可能性を排除出来る。

スポンサード リンク

人気記事

最近の投稿

カテゴリー

タグ