Riepilogo :in questo tutorial imparerai passo dopo passo come rinominare una colonna di una tabella in SQLite.
Introduzione all'istruzione SQLite ALTER TABLE RENAME COLUMN
SQLite ha aggiunto il supporto per la ridenominazione delle colonne dalla versione 3.25.0 utilizzando ALTER TABLE
istruzione con la seguente sintassi:
ALTER TABLE table_name
RENAME COLUMN current_name TO new_name;
Code language: SQL (Structured Query Language) (sql)
In questa sintassi:
- In primo luogo, specifica il nome della tabella dopo
ALTER TABLE
parole chiave. - Secondo, specifica il nome della colonna che vuoi rinominare dopo
RENAME COLUMN
parole chiave e il nuovo nome dopo ilTO
parola chiave.
Esempio SQLite ALTER TABLE RENAME COLUMN
Facciamo un esempio di utilizzo di ALTER TABLE RENAME COLUMN
dichiarazione.
Per prima cosa, crea una nuova tabella chiamata 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)
In secondo luogo, inserisci una nuova riga in Locations
tabella utilizzando INSERT
dichiarazione:
INSERT INTO Locations(Address,City,State,Country)
VALUES('3960 North 1st Street','San Jose','CA','USA');
Code language: SQL (Structured Query Language) (sql)
Terzo, rinomina la colonna Address
a Street
utilizzando ALTER TABLE RENAME COLUMN
dichiarazione:
ALTER TABLE Locations
RENAME COLUMN Address TO Street;
Code language: SQL (Structured Query Language) (sql)
In quarto luogo, interroga i dati da Locations
tabella:
SELECT * FROM Locations;
Code language: SQL (Structured Query Language) (sql)
Uscita:
LocationId Street City State Country
---------- --------------------- ---------- ---------- ----------
1 3960 North 1st Street San Jose CA USA
Code language: Shell Session (shell)
Infine, mostra lo schema delle Locations
tabella:
.schema Locations
Code language: Shell Session (shell)
Uscita:
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)
Il vecchio modo di rinominare la colonna
SQLite non supportava ALTER TABLE RENAME COLUMN
sintassi precedente alla versione 3.25.0.
Se stai utilizzando SQLite con la versione precedente alla 3.25.0 e non hai potuto eseguire l'aggiornamento, segui questi passaggi per rinominare una colonna:
- In primo luogo, avvia una transazione.
- In secondo luogo, crea una nuova tabella la cui struttura è la stessa di quella originale ad eccezione della colonna che vuoi rinominare.
- Terzo, copia i dati dalla tabella originale alla nuova tabella.
- Quarto, elimina la tabella originale.
- Quinto, rinomina la nuova tabella nella tabella originale.
- Infine, conferma la transazione.
Esempio di ridenominazione della colonna
La seguente istruzione ricrea le Locations
tabella:
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)
E questo INSERT
l'istruzione inserisce una nuova riga in Locations
tabella:
INSERT INTO Locations(Address,City,State,Country)
VALUES('3960 North 1st Street','San Jose','CA','USA');
Code language: SQL (Structured Query Language) (sql)
Supponiamo di voler cambiare la colonna Address
a Street
.
Innanzitutto, avvia una nuova transazione:
BEGIN TRANSACTION;
Code language: SQL (Structured Query Language) (sql)
In secondo luogo, crea una nuova tabella chiamata LocationsTemp
con la stessa struttura delle Locations
tabella ad eccezione dell'Address
colonna:
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)
Terzo, copia i dati dalla tabella Locations
a LocationsTemp
:
INSERT INTO LocationsTemp(Street,City,State,Country)
SELECT Address,City,State,Country
FROM Locations;
Code language: SQL (Structured Query Language) (sql)
In quarto luogo, rilascia Locations
tabella:
DROP TABLE Locations;
Code language: SQL (Structured Query Language) (sql)
Quinto, rinomina la tabella LocationsTemp
a Locations
:
ALTER TABLE LocationsTemp
RENAME TO Locations;
Code language: SQL (Structured Query Language) (sql)
Infine, conferma la transazione:
COMMIT;
Code language: SQL (Structured Query Language) (sql)
Se interroghi le Locations
tabella, vedrai che la colonna Address
è stato rinominato in Street
:
SELECT * FROM Locations;
Code language: SQL (Structured Query Language) (sql)
Ecco l'output:
Riepilogo
- Usa
ALTER TABLE RENAME COLUMN
per rinominare una colonna in una tabella. - Se stai usando SQLite 3.25.0, dovresti aggiornarlo e usare la nuova sintassi. In caso contrario, devi seguire i passaggi sopra descritti per rinominare una colonna.