Oversigt :i denne øvelse lærer du trin for trin, hvordan du omdøber en kolonne i en tabel i SQLite.
Introduktion til SQLite ALTER TABLE RENAME COLUMN-sætning
SQLite har tilføjet understøttelse af omdøbning af kolonne siden version 3.25.0 ved hjælp af ALTER TABLE
sætning med følgende syntaks:
ALTER TABLE table_name
RENAME COLUMN current_name TO new_name;
Code language: SQL (Structured Query Language) (sql)
I denne syntaks:
- Først skal du angive navnet på tabellen efter
ALTER TABLE
søgeord. - For det andet skal du angive navnet på den kolonne, du vil omdøbe efter
RENAME COLUMN
nøgleord og det nye navn efterTO
søgeord.
SQLite ALTER TABLE RENAME KOLONNE eksempel
Lad os tage et eksempel på brug af ALTER TABLE RENAME COLUMN
erklæring.
Først skal du oprette en ny tabel kaldet 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)
For det andet skal du indsætte en ny række i Locations
tabel ved at bruge INSERT
erklæring:
INSERT INTO Locations(Address,City,State,Country)
VALUES('3960 North 1st Street','San Jose','CA','USA');
Code language: SQL (Structured Query Language) (sql)
For det tredje skal du omdøbe kolonnen Address
til Street
ved at bruge ALTER TABLE RENAME COLUMN
erklæring:
ALTER TABLE Locations
RENAME COLUMN Address TO Street;
Code language: SQL (Structured Query Language) (sql)
For det fjerde, forespørg data fra Locations
tabel:
SELECT * FROM Locations;
Code language: SQL (Structured Query Language) (sql)
Output:
LocationId Street City State Country
---------- --------------------- ---------- ---------- ----------
1 3960 North 1st Street San Jose CA USA
Code language: Shell Session (shell)
Vis endelig skemaet for Locations
tabel:
.schema Locations
Code language: Shell Session (shell)
Output:
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)
Den gamle måde at omdøbe kolonne på
SQLite understøttede ikke ALTER TABLE RENAME COLUMN
syntaks før version 3.25.0.
Hvis du bruger SQLite med versionen lavere end 3.25.0 og ikke kunne opgradere, skal du følge disse trin for at omdøbe en kolonne:
- Start først en transaktion.
- For det andet skal du oprette en ny tabel, hvis struktur er den samme som den oprindelige bortset fra den kolonne, du vil omdøbe.
- For det tredje skal du kopiere data fra den oprindelige tabel til den nye tabel.
- For det fjerde skal du slippe den oprindelige tabel.
- For det femte skal du omdøbe den nye tabel til den oprindelige tabel.
- Til sidst skal du forpligte transaktionen.
Eksempel på omdøbning af kolonne
Følgende sætning genskaber Locations
tabel:
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)
Og denne INSERT
statement indsætter en ny række i Locations
tabel:
INSERT INTO Locations(Address,City,State,Country)
VALUES('3960 North 1st Street','San Jose','CA','USA');
Code language: SQL (Structured Query Language) (sql)
Antag, at du vil ændre kolonnen Address
til Street
.
Start først en ny transaktion:
BEGIN TRANSACTION;
Code language: SQL (Structured Query Language) (sql)
For det andet skal du oprette en ny tabel kaldet LocationsTemp
med samme struktur som Locations
tabel undtagen Address
kolonne:
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)
For det tredje skal du kopiere data fra tabellen Locations
til LocationsTemp
:
INSERT INTO LocationsTemp(Street,City,State,Country)
SELECT Address,City,State,Country
FROM Locations;
Code language: SQL (Structured Query Language) (sql)
For det fjerde skal du slippe Locations
tabel:
DROP TABLE Locations;
Code language: SQL (Structured Query Language) (sql)
For det femte skal du omdøbe tabellen LocationsTemp
til Locations
:
ALTER TABLE LocationsTemp
RENAME TO Locations;
Code language: SQL (Structured Query Language) (sql)
Til sidst skal du forpligte transaktionen:
COMMIT;
Code language: SQL (Structured Query Language) (sql)
Hvis du forespørger på Locations
tabel, vil du se, at kolonnen Address
er blevet omdøbt til Street
:
SELECT * FROM Locations;
Code language: SQL (Structured Query Language) (sql)
Her er outputtet:
Oversigt
- Brug
ALTER TABLE RENAME COLUMN
for at omdøbe en kolonne i en tabel. - Hvis du bruger SQLite 3.25.0, bør du opgradere det og bruge den nye syntaks. Ellers skal du følge trinene beskrevet ovenfor for at omdøbe en kolonne.