SQLiteで テーブルに列を追加する方法について記載します。
目次
1. 列の追加方法
構文
ALTER TABLE テーブル名 ADD COLUMN 追加する列の定義;
例
hogeテーブルに、t1列(TEXT型)を追加します。
1 |
ALTER TABLE hoge ADD COLUMN t1 TEXT; |
2. 列の追加にかかる時間
“列の追加を行うと、スキーマ情報のみが更新されテーブルの内容は更新されないため、SQLの実行時間はテーブルのデータ量に依存しない。” と公式サイトに記載されています。
試しに、100万レコードあるテーブル(hoge)で検証してみました。
デフォルト値が無い列を追加
hogeテーブルに、t1列(TEXT型)を追加します。
1 2 3 4 |
sqlite> select count(*) from hoge; 1000000 sqlite> ALTER TABLE hoge ADD COLUMN t1 TEXT; Run Time: real 0.020 user 0.000681 sys 0.004184 |
追加にかかった時間は、0.2秒です。なかなか早いですね。
デフォルト値がある列を追加
先ほどは、NOT NULL 制約が無くデフォルト値がなかったから早かったかもしれません。
次は、デフォルト値があるstatus列を追加します。
1 2 |
sqlite> ALTER TABLE hoge ADD COLUMN status INTEGER NOT NULL DEFAULT 0; Run Time: real 0.006 user 0.000740 sys 0.002772 |
追加にかかった時間は、0.006秒でした。こちらも早いですね。
確かに公式サイトの記載の通り、高速に列の追加を行うことができました。