概要
SQLite 3 でカラムの名前を変更するSQL。
他のDBMS同様に「alter table~」を利用する。
alter table table_name rename old_name to new_name;
もしくは
alter table table_name rename column old_name to new_name;
OracleやMySQLだと「alter table~modify~」でも変更できるが、SQLite 3 ではこれができない。 さらに言うと、「alter table~」でカラムのデータ型を変更することもできない。 (ver. 3.33.0 時点)
環境
- Windows 10 64bit
- SQLite3 (3.33.0) Command-Line Shell
実行例
カラム名「id」を「product_id」に変更する
sqlite> .schema product
CREATE TABLE product
(
id integer
, name text
, quantity integer
, remark text
);
sqlite> alter table product rename column id to product_id;
sqlite> .schema product
CREATE TABLE product
(
product_id integer
, name text
, quantity integer
, remark text
);
対象カラムを参照しているスキーマも変更される
ビュー、トリガー、外部キー制約に記載されているカラム名が変更される。
- 「total_view」ビューが「product」テーブルの「quantity」を参照している
- 「product」テーブルの「quantity」を「price」に変更すると 「total_view」も「price」を参照するよう変更される
sqlite> .tables
product total_view
sqlite> -- # 1.
sqlite> .schema total_view
CREATE VIEW total_view
as
select
sum(quantity)
from
"product"
/* total_view("sum(quantity)") */;
sqlite> -- # 2.
sqlite> alter table product rename quantity to price;
sqlite> .schema total_view
CREATE VIEW total_view
as
select
sum(price)
from
"product"
/* total_view("sum(price)") */;
参考URL
-
Command Line Shell For SQLite
公式のコマンドラインツールに関するドキュメント
https://www.sqlite.org/cli.html -
ALTER TABLE RENAME COLUMN
公式のalter table に関するドキュメント
https://www.sqlite.org/lang_altertable.html#alter_table_rename_column