SQLのautoincrement機能

前準備

SQLite 3 の詳細については,別ページ »にまとめています.

autoincrementの実践的な使用方法

autoincrementとは,レコード作成時に値が指定されない場合,自動的に1ずつ増加する値を設定する属性です.

  1. データの構造と概要

    このデータセットに対して,一意の識別子としてid属性を追加したテーブルを作成します.

  2. SQLite 3の起動方法

    この例では,インメモリ・データベースを使用するため,データベース名を指定せずに起動します.

    sqlite3
    
  3. 基本データの作成

    演習目的で,まずidを含まないテーブルSを作成します.

    テーブル定義: S(a1, a2, a3)

    create table S (
        a1 integer,
        a2 integer,
        a3 INTEGER);
    begin transaction;
    insert into S(a1, a2, a3) values (1, 2, 3);
    insert into S(a1, a2, a3) values (1, 1, 2);
    insert into S(a1, a2, a3) values (2, 1, 1);
    insert into S(a1, a2, a3) values (3, 3, 1);
    commit;
    
  4. データ内容の確認
    select * from S;
    
  5. 新テーブルの定義

    テーブル定義: T(id, a1, a2, a3)

    テーブルTのid列にautoincrement属性を設定します.

    その後,テーブルSのデータをテーブルTに移行します.

    create table T (
        id integer primary key autoincrement not null,
        a1 integer,
        a2 integer,
        a3 integer);
    begin transaction;
    insert into T(a1, a2, a3) SELECT a1, a2, a3 FROM S;
    commit;
    
  6. テーブルTの確認
    select * from T;