金子邦彦研究室情報工学全般SQLite 3 の使い方SQL の autoincrement(SQLite 3 を使用)

SQL の autoincrement

前準備

SQLite 3 について: 別ページ »にまとめ

autoincrement を使ってみる

autoincrement は,レコードの導入において値が省略されたとき,1ずつ増えるように設定される属性のこと.

  1. ここで扱うデータ

    [image]

    このデータに, 主キーとして使える属性 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;
    

    [image]
  4. 元データの確認表示

    select * from S;
    

    [image]
  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;
    

    [image]
  6. テーブル T の確認表示

    select * from T;
    

    [image]