SQLite データベース テーブルの列の名前を変更するにはどうすればよいですか? 質問する

SQLite データベース テーブルの列の名前を変更するにはどうすればよいですか? 質問する

SQLiteデータベースのいくつかのテーブル内のいくつかの列の名前を変更する必要があります。同様の質問以前、stackoverflow で質問されましたが、それは SQL 全般に関するものであり、SQLite のケースについては言及されていませんでした。

SQLiteのドキュメントより他の机、そのようなことを「簡単に」(つまり、単一の ALTER TABLE ステートメントで)実行することは不可能であると私は理解しています。

SQLite でこのようなことを実行する一般的な SQL の方法を知っている人がいないかと思いました。

ベストアンサー1

バージョン3.25.0 2018年9月リリースALTER TABLEでは列の名前を変更する

Really Bad : Column Name名前を変更する例BetterColumnName:

ALTER TABLE your_table
RENAME COLUMN "Really Bad : Column Name" TO BetterColumnName

によるとキーワードの使用は"double-quotes"標準的な方法です

オリジナルの「新しいテーブルを作成して古いテーブルを削除する」の回答は以下にあります。


テーブルがあり、「colb」の名前を「col_b」に変更する必要があるとします。

まず、古いテーブル定義に基づき、列名を更新した一時的な名前で新しいテーブルを作成します。

CREATE TABLE tmp_table_name (
  col_a INT
, col_b INT
);

次に、元の表の内容をコピーします。

INSERT INTO tmp_table_name(col_a, col_b)
SELECT col_a, colb
FROM orig_table_name;

古いテーブルを削除します。

DROP TABLE orig_table_name;

最後に、一時テーブルの名前を元の名前に変更します。

ALTER TABLE tmp_table_name RENAME TO orig_table_name;

インデックス、トリガーなどを再作成することを忘れないでください。ドキュメント落とし穴や注意点のより完全な概要を示します。

これらすべてをBEGIN TRANSACTION;andでラップすることCOMMIT;もおそらく良いアイデアです。

おすすめ記事