概要
SQLite3でテーブル名を変更するDDL。 OracleやMySQLなどとほぼ変わらない。
alter table old_name rename to new_name;
実行例
環境
- Windows 10 64bit
- SQLite3 (3.33.0) Command-Line Shell
sqlite> .tables
product
sqlite> alter table product rename to item;
sqlite> .tables
item
対象テーブルを参照しているスキーマも一緒に変更される
ビュー、トリガー、外部キー制約など
- 「total_view」ビューが「product」テーブルを参照している
- 「product」を「item」に変更すると「total_view」のスキーマも変更される
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 to item;
sqlite> .tables
item total_view
sqlite> .schema total_view
CREATE VIEW total_view
as
select
sum(quantity)
from
"item"
/* total_view("sum(quantity)") */;
参考URL
-
Command Line Shell For SQLite
公式のコマンドラインツールに関するドキュメント
https://www.sqlite.org/cli.html -
ALTER TABLE RENAME
公式のalter table に関するドキュメント
https://www.sqlite.org/lang_altertable.html#alter_table_rename
-
SQLite3 alter table でテーブル名が変更できない (legacy_alter_table)
https://sfnovicenotes.blogspot.com/2020/11/sqlite3-alter-table-legacyaltertable.html