Heim >Datenbank >MySQL-Tutorial >Wie kann ich eine Spalte aus einer SQLite-Tabelle löschen?

Wie kann ich eine Spalte aus einer SQLite-Tabelle löschen?

Susan Sarandon
Susan SarandonOriginal
2025-01-11 22:51:43928Durchsuche

How Can I Drop a Column from a SQLite Table?

SQLite-Tabelle ändern: Spalte löschen

Frage:

Versuchen Sie, eine Spalte aus einer SQLite-Datenbanktabelle mit der folgenden Abfrage zu löschen:

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

Es gab jedoch keinen Erfolg. Was ist die Lösung?

Antwort:

In Versionen vor SQLite 3.35.0 (12.03.2021) wird das direkte Löschen von Spalten nicht unterstützt. Um solche Änderungen vorzunehmen, ist ein ausgefeilterer Ansatz erforderlich:

  1. Temporäre Tabelle erstellen: Kopieren Sie alle relevanten Daten (z. B. Spalten „a“ und „b“) in die temporäre Tabelle:
<code class="language-sql">CREATE TEMPORARY TABLE t1_backup (a, b);
INSERT INTO t1_backup SELECT a, b FROM t1;</code>
  1. Originaltabelle löschen: Tabelle mit unnötigen Spalten löschen:
<code class="language-sql">DROP TABLE t1;</code>
  1. Erstellen Sie die ursprüngliche Tabelle neu: Definieren Sie eine neue Tabelle, die die gelöschten Spalten nicht enthält:
<code class="language-sql">CREATE TABLE t1 (a, b);</code>
  1. Daten zurück übertragen: Daten aus temporärer Tabelle in neu erstellte Tabelle einfügen:
<code class="language-sql">INSERT INTO t1 SELECT a, b FROM t1_backup;</code>
  1. Temporäre Tabelle löschen: Aufräumen durch Löschen der temporären Tabelle:
<code class="language-sql">DROP TABLE t1_backup;</code>
  1. Änderungen übernehmen: Änderungen dauerhaft machen:
<code class="language-sql">COMMIT;</code>

Aktualisierung:

SQLite 3.35.0 und höher unterstützt jetzt direkt die DROP COLUMN-Klausel, wodurch es einfacher wird, Spalten aus Tabellen zu löschen.

Das obige ist der detaillierte Inhalt vonWie kann ich eine Spalte aus einer SQLite-Tabelle löschen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn