SQLのautoincrement機能
前準備
SQLite 3 の詳細については,別ページ »にまとめています.
autoincrementの実践的な使用方法
autoincrementとは,レコード作成時に値が指定されない場合,自動的に1ずつ増加する値を設定する属性です.
- データの構造と概要
このデータセットに対して,一意の識別子としてid属性を追加したテーブルを作成します.
- SQLite 3の起動方法
この例では,インメモリ・データベースを使用するため,データベース名を指定せずに起動します.
sqlite3
- 基本データの作成
演習目的で,まず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;
- データ内容の確認
select * from S;
- 新テーブルの定義
テーブル定義: 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;
- テーブルTの確認
select * from T;