Sammanfattning :i den här handledningen lär du dig steg för steg hur du byter namn på en kolumn i en tabell i SQLite.
Introduktion till SQLite ALTER TABLE RENAME COLUMN-satsen
SQLite har lagt till stöd för att byta namn på kolumn sedan version 3.25.0 med ALTER TABLE uttalande med följande syntax:
ALTER TABLE table_name
RENAME COLUMN current_name TO new_name;Code language: SQL (Structured Query Language) (sql) I denna syntax:
- Ange först namnet på tabellen efter
ALTER TABLEsökord. - För det andra, ange namnet på kolumnen som du vill byta namn på efter
RENAME COLUMNnyckelord och det nya namnet efterTOsökord.
Exempel på SQLite ALTER TABLE RENAME COLUMN
Låt oss ta ett exempel på hur du använder ALTER TABLE RENAME COLUMN uttalande.
Skapa först en ny tabell som heter 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)
För det andra, infoga en ny rad i Locations tabell genom att använda INSERT uttalande:
INSERT INTO Locations(Address,City,State,Country)
VALUES('3960 North 1st Street','San Jose','CA','USA');Code language: SQL (Structured Query Language) (sql)
För det tredje, byt namn på kolumnen Address till Street genom att använda ALTER TABLE RENAME COLUMN uttalande:
ALTER TABLE Locations
RENAME COLUMN Address TO Street;Code language: SQL (Structured Query Language) (sql)
För det fjärde, fråga efter data från Locations tabell:
SELECT * FROM Locations;Code language: SQL (Structured Query Language) (sql) Utdata:
LocationId Street City State Country
---------- --------------------- ---------- ---------- ----------
1 3960 North 1st Street San Jose CA USACode language: Shell Session (shell)
Till sist, visa schemat för Locations tabell:
.schema LocationsCode language: Shell Session (shell) Utdata:
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) Det gamla sättet att byta namn på kolumn
SQLite stödde inte ALTER TABLE RENAME COLUMN syntax före version 3.25.0.
Om du använder SQLite med en lägre version än 3.25.0 och inte kunde uppgradera, bör du följa dessa steg för att byta namn på en kolumn:
- Starta först en transaktion.
- Skapa för det andra en ny tabell vars struktur är densamma som den ursprungliga förutom kolumnen som du vill byta namn på.
- För det tredje, kopiera data från den ursprungliga tabellen till den nya tabellen.
- Fjärde, släpp den ursprungliga tabellen.
- Femte, byt namn på den nya tabellen till den ursprungliga tabellen.
- Slutligen genomför transaktionen.
Exempel på att byta namn på kolumn
Följande sats återskapar Locations tabell:
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)
Och den här INSERT uttalandet infogar en ny rad i Locations tabell:
INSERT INTO Locations(Address,City,State,Country)
VALUES('3960 North 1st Street','San Jose','CA','USA');Code language: SQL (Structured Query Language) (sql)
Anta att du vill ändra kolumnen Address till Street .
Starta först en ny transaktion:
BEGIN TRANSACTION;Code language: SQL (Structured Query Language) (sql)
För det andra, skapa en ny tabell som heter LocationsTemp med samma struktur som Locations tabellen förutom Address kolumn:
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)
För det tredje, kopiera data från tabellen Locations till LocationsTemp :
INSERT INTO LocationsTemp(Street,City,State,Country)
SELECT Address,City,State,Country
FROM Locations;Code language: SQL (Structured Query Language) (sql)
För det fjärde, släpp Locations tabell:
DROP TABLE Locations;Code language: SQL (Structured Query Language) (sql)
För det femte, byt namn på tabellen LocationsTemp till Locations :
ALTER TABLE LocationsTemp
RENAME TO Locations;Code language: SQL (Structured Query Language) (sql) Slutligen genomför transaktionen:
COMMIT;Code language: SQL (Structured Query Language) (sql)
Om du frågar efter Locations tabell, kommer du att se kolumnen Address har bytt namn till Street :
SELECT * FROM Locations;Code language: SQL (Structured Query Language) (sql) Här är resultatet:
Sammanfattning
- Använd
ALTER TABLE RENAME COLUMNför att byta namn på en kolumn i en tabell. - Om du använder SQLite 3.25.0 bör du uppgradera den och använda den nya syntaxen. Annars måste du följa stegen som beskrivs ovan för att byta namn på en kolumn.