SQLite 変更コマンド
SQLite の ALTER TABLE コマンドは、データの完全なダンプとリロードを実行して既存のテーブルを変更しません。 ALTER TABLE ステートメントを使用すると、テーブルの名前を変更したり、既存のテーブルに列を追加したりできます。
SQLite では、ALTER TABLE コマンドは、テーブルの名前変更と既存のテーブルへの列の追加を除く他の操作をサポートしません。
構文
既存のテーブルの名前を変更するために使用されるALTER TABLEの基本構文は次のとおりです:
ALTER TABLE database_name.table_name RENAME TO new_table_name;
既存のテーブルに新しい列を追加するために使用されるALTER TABLEの基本構文は次のとおりです:
ALTER TABLE database_name.table_name ADD COLUMN column_def...;
例
COMPANY テーブルに次のレコードがあるとします。
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0
次に、以下に示すように ALTER TABLE ステートメントを使用してテーブルの名前を変更してみましょう:
sqlite> ALTER TABLE COMPANY RENAME TO OLD_COMPANY;
上記の SQLite ステートメントは COMPANY テーブルの名前を OLD_COMPANY に変更します。ここで、以下に示すように、OLD_COMPANY テーブルに新しい列を追加してみましょう:
sqlite> ALTER TABLE OLD_COMPANY ADD COLUMN SEX char(1);
これで COMPANY テーブルが変更され、SELECT ステートメントを使用すると、出力は次のようになります:
ID NAME AGE ADDRESS SALARY SEX ---------- ---------- ---------- ---------- ---------- --- 1 Paul 32 California 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0
新しく追加された列に注意してください。 NULL 値が入ります。