SQLite

INTEGER PRIMARY KEY

自動増分の連番IDを定義する基本構文

解説

SQLiteにおいて、カラムを INTEGER PRIMARY KEY(大文字小文字区別なし、厳密にこの並び)で宣言すると、SQLiteが内部で管理している行識別子(ROWID)のエイリアスとなり、自動的に連番が採番されるようになります。

AUTOINCREMENTキーワードを付けるべきか?

SQLiteには AUTOINCREMENT キーワードも存在しますが、公式ドキュメントでは原則として付ける必要がないとされています。

  • INTEGER PRIMARY KEY 単体: 削除された過去の最大IDが再利用される可能性がありますが、高速でメモリ消費が少ないです。
  • AUTOINCREMENT を付与: コミット済みの行で過去に使われたROWIDを再利用しないよう管理されますが、内部テーブルの管理オーバーヘッドが発生します。
構文
CREATE TABLE users (id INTEGER PRIMARY KEY [AUTOINCREMENT], name TEXT);
具体例
CREATE TABLE items (id INTEGER PRIMARY KEY, name TEXT, price INTEGER);

この構文を実際に書いて試してみませんか?

SQLエディタを開く