概要
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