SQLite 3 について: 別ページ »にまとめ
autoincrement は,レコードの導入において値が省略されたとき,1ずつ増えるように設定される属性のこと.
このデータに, 主キーとして使える属性 id を追加したテーブルを考える.
ここでは, データベース名を指定せず,インメモリ・データベースを用いている.
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;
select * from T;