🗃️SQLLearn
テーブル作成 レッスン5

自動採番

AUTOINCREMENT・SERIALによるIDの自動生成

SQLiteの自動採番

SQLiteでは INTEGER PRIMARY KEY を指定すると、 rowid の別名となり自動的に連番が割り当てられます。AUTOINCREMENT キーワードを追加すると、 削除された番号を再利用しない厳密な自動採番になります。

  • INTEGER PRIMARY KEY — rowid の別名、自動で連番
  • INTEGER PRIMARY KEY AUTOINCREMENT — 単調増加を保証
  • last_insert_rowid() — 最後に挿入したIDを取得

例1: INTEGER PRIMARY KEYの自動採番

SQLエディタ

AUTOINCREMENTと単純なINTEGER PRIMARY KEYの違い

INTEGER PRIMARY KEY だけでは、 行を削除すると削除した番号が再利用される可能性があります。AUTOINCREMENT を付けると、 過去に使用した最大値よりも常に大きい値が割り当てられるため、IDの再利用が防がれます。 ほとんどのケースでは AUTOINCREMENT なしで十分です。

例2: last_insert_rowid()で挿入IDを取得

SQLエディタ

例3: AUTOINCREMENTで単調増加を保証

SQLエディタ