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 demTO
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 USA
Code language: Shell Session (shell)
Zeigen Sie abschließend das Schema der Locations
Tabelle:
.schema Locations
Code 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.