ホームページ >データベース >mysql チュートリアル >SQLite テーブルから列を削除するにはどうすればよいですか?

SQLite テーブルから列を削除するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-11 22:51:43929ブラウズ

How Can I Drop a Column from a SQLite Table?

SQLite テーブルの変更: 列の削除

質問:

次のクエリを使用して SQLite データベース テーブルから列を削除してみます:

<code class="language-sql">ALTER TABLE table_name DROP COLUMN column_name;</code>

しかし、成功はしませんでした。解決策は何でしょうか?

答え:

SQLite 3.35.0 (2021-03-12) より前のバージョンでは、列の直接削除はサポートされていません。このような変更を行うには、より洗練されたアプローチが必要です:

  1. 一時テーブルを作成します: すべての関連データ (列 "a" と "b" など) を一時テーブルにコピーします:
<code class="language-sql">CREATE TEMPORARY TABLE t1_backup (a, b);
INSERT INTO t1_backup SELECT a, b FROM t1;</code>
  1. 元のテーブルを削除: 不要な列を含むテーブルを削除:
<code class="language-sql">DROP TABLE t1;</code>
  1. 元のテーブルを再作成します: 削除された列を含まない新しいテーブルを定義します:
<code class="language-sql">CREATE TABLE t1 (a, b);</code>
  1. データを転送します: 一時テーブルから新しく作成されたテーブルにデータを挿入します:
<code class="language-sql">INSERT INTO t1 SELECT a, b FROM t1_backup;</code>
  1. 一時テーブルの削除: 一時テーブルの削除によるクリーンアップ:
<code class="language-sql">DROP TABLE t1_backup;</code>
  1. 変更をコミット: 変更を永続化:
<code class="language-sql">COMMIT;</code>

更新:

SQLite 3.35.0 以降では、DROP COLUMN 句が直接サポートされるようになり、テーブルから列を簡単に削除できるようになりました。

以上がSQLite テーブルから列を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。