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 TABLE
sökord. - För det andra, ange namnet på kolumnen som du vill byta namn på efter
RENAME COLUMN
nyckelord och det nya namnet efterTO
sö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 USA
Code language: Shell Session (shell)
Till sist, visa schemat för Locations
tabell:
.schema Locations
Code 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 COLUMN
fö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.