2020年12月8日火曜日

SQLite3 新しいカラムを追加する (ADD COLUMN)

概要

SQLite3 でテーブルに新しいカラムを追加するSQL。
他のDBMSと同様にALTER TABLE ~を利用する。

追加したカラムは必ず最後に配置される。 位置を変更したい場合は、新しいテーブルを再作成してデータを移すしかない。

複数のカラムを一括で追加することもできないので、 その場合は追加したいカラムの数だけALTER TABLE ~文を実行する。

構文

以下の3パターン。
「column_constraint」は NOT NULLや PRIMARY KEYなど。
理由がない限り、データ型は指定するようにする。


ALTER TABLE table_name ADD COLUMN column_name;
                

ALTER TABLE table_name ADD COLUMN column_name data_type;
                

ALTER TABLE table_name ADD COLUMN column_name data_type column_constraint;
                

実行例

実行環境
  • Windows 10 64bit
  • SQLite3 (3.33.0) Command-Line Shell

「product」テーブルに「type」カラムを追加してtext型にする


sqlite> .schema product
CREATE TABLE product (
    id integer
    , name text
);

sqlite> ALTER TABLE product ADD COLUMN type text;

sqlite> .schema product
CREATE TABLE product (
    id integer
    , name text
, type text);
                

上記の.schemaコマンドの結果を見るとわかるが、 既存のスキーマに自動で追加されるので見づらくなってしまう。

崩れてしまったスキーマ文の修正方法はこちら
SQLite 3 スキーマ文を編集する

参考URL