SQLite
 sql >> Datenbank >  >> RDS >> SQLite

SQLite-Spalte umbenennen

Zusammenfassung :In diesem Tutorial lernen Sie Schritt für Schritt, wie Sie eine Spalte einer Tabelle in SQLite umbenennen.

Einführung in die SQLite-Anweisung ALTER TABLE RENAME COLUMN

SQLite hat seit Version 3.25.0 Unterstützung für das Umbenennen von Spalten mit ALTER TABLE hinzugefügt Anweisung mit der folgenden Syntax:

ALTER TABLE table_name
RENAME COLUMN current_name TO new_name;Code language: SQL (Structured Query Language) (sql)

In dieser Syntax:

  • Spezifizieren Sie zuerst den Namen der Tabelle nach ALTER TABLE Schlüsselwörter.
  • Geben Sie zweitens den Namen der Spalte an, die Sie umbenennen möchten, nach RENAME COLUMN Schlüsselwörter und den neuen Namen nach dem TO Schlüsselwort.

Beispiel für SQLite ALTER TABLE RENAME COLUMN

Nehmen wir ein Beispiel für die Verwendung von ALTER TABLE RENAME COLUMN Erklärung.

Erstellen Sie zunächst eine neue Tabelle mit dem Namen Locations :

CREATE TABLE Locations(
	LocationId INTEGER PRIMARY KEY,
	Address TEXT NOT NULL,
	City TEXT NOT NULL,
	State TEXT NOT NULL,
	Country TEXT NOT NULL
);Code language: SQL (Structured Query Language) (sql)

Zweitens fügen Sie eine neue Zeile in die Locations ein Tabelle mit INSERT Aussage:

INSERT INTO Locations(Address,City,State,Country)
VALUES('3960 North 1st Street','San Jose','CA','USA');Code language: SQL (Structured Query Language) (sql)

Drittens benennen Sie die Spalte Address um zur Street indem Sie ALTER TABLE RENAME COLUMN verwenden Aussage:

ALTER TABLE Locations
RENAME COLUMN Address TO Street;Code language: SQL (Structured Query Language) (sql)

Fragen Sie viertens Daten von den Locations ab Tabelle:

SELECT * FROM Locations;Code language: SQL (Structured Query Language) (sql)

Ausgabe:

LocationId  Street                 City        State       Country
----------  ---------------------  ----------  ----------  ----------
1           3960 North 1st Street  San Jose    CA          USACode language: Shell Session (shell)

Zeigen Sie abschließend das Schema der Locations Tabelle:

.schema LocationsCode language: Shell Session (shell)

Ausgabe:

CREATE TABLE Locations(
        LocationId INTEGER PRIMARY KEY,
        Street TEXT NOT NULL,
        City TEXT NOT NULL,
        State TEXT NOT NULL,
        Country TEXT NOT NULL
);Code language: SQL (Structured Query Language) (sql)

Die alte Methode zum Umbenennen von Spalten

SQLite hat ALTER TABLE RENAME COLUMN nicht unterstützt Syntax vor Version 3.25.0.

Wenn Sie SQLite mit einer niedrigeren Version als 3.25.0 verwenden und kein Upgrade durchführen konnten, sollten Sie die folgenden Schritte ausführen, um eine Spalte umzubenennen:

  • Starten Sie zuerst eine Transaktion.
  • Als Zweites erstellen Sie eine neue Tabelle, deren Struktur bis auf die Spalte, die Sie umbenennen möchten, mit der ursprünglichen identisch ist.
  • Drittens kopieren Sie Daten aus der ursprünglichen Tabelle in die neue Tabelle.
  • Viertens, löschen Sie die ursprüngliche Tabelle.
  • Fünftens benennen Sie die neue Tabelle in die ursprüngliche Tabelle um.
  • Legen Sie abschließend die Transaktion fest.

Beispiel für Spaltenumbenennung

Die folgende Anweisung erstellt die Locations neu Tabelle:

DROP TABLE IF EXISTS Locations;
CREATE TABLE Locations(
	LocationId INTEGER PRIMARY KEY,
	Address TEXT NOT NULL,
	State TEXT NOT NULL,
	City TEXT NOT NULL,
	Country TEXT NOT NULL
);Code language: SQL (Structured Query Language) (sql)

Und dieses INSERT -Anweisung fügt eine neue Zeile in die Locations ein Tabelle:

INSERT INTO Locations(Address,City,State,Country)
VALUES('3960 North 1st Street','San Jose','CA','USA');Code language: SQL (Structured Query Language) (sql)

Angenommen, Sie möchten die Spalte Address ändern zur Street .

Starten Sie zuerst eine neue Transaktion:

BEGIN TRANSACTION;Code language: SQL (Structured Query Language) (sql)

Zweitens erstellen Sie eine neue Tabelle mit dem Namen LocationsTemp mit der gleichen Struktur wie die Locations Tabelle mit Ausnahme der Address Spalte:

CREATE TABLE LocationsTemp(
	LocationId INTEGER PRIMARY KEY,
	Street TEXT NOT NULL,
	City TEXT NOT NULL,
	State TEXT NOT NULL,
	Country TEXT NOT NULL
);
Code language: SQL (Structured Query Language) (sql)

Drittens kopieren Sie Daten aus der Tabelle Locations zu LocationsTemp :

INSERT INTO LocationsTemp(Street,City,State,Country)
SELECT Address,City,State,Country
FROM Locations;Code language: SQL (Structured Query Language) (sql)

Lassen Sie viertens die Locations fallen Tabelle:

DROP TABLE Locations;Code language: SQL (Structured Query Language) (sql)

Als fünftes benennen Sie die Tabelle in LocationsTemp um zu Locations :

ALTER TABLE LocationsTemp 
RENAME TO Locations;Code language: SQL (Structured Query Language) (sql)

Bestätigen Sie abschließend die Transaktion:

COMMIT;Code language: SQL (Structured Query Language) (sql)

Wenn Sie die Locations abfragen Tabelle sehen Sie, dass die Spalte Address wurde in Street umbenannt :

SELECT * FROM Locations;Code language: SQL (Structured Query Language) (sql)

Hier ist die Ausgabe:

Zusammenfassung

  • Verwenden Sie die ALTER TABLE RENAME COLUMN um eine Spalte in einer Tabelle umzubenennen.
  • Wenn Sie SQLite 3.25.0 verwenden, sollten Sie es aktualisieren und die neue Syntax verwenden. Andernfalls müssen Sie die oben beschriebenen Schritte ausführen, um eine Spalte umzubenennen.