SQLite ALTER コマンド
SQLite のALTER TABLEコマンドは、完全なダンプとデータのリロードを実行して既存のテーブルを変更するものではありません。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 値が入れられていることに注意してください。
その他の拡張