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 値が入れられていることに注意してください。

その他の拡張