SQLite
 sql >> Database >  >> RDS >> SQLite

SQLite Rinomina colonna

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 il TO 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          USACode language: Shell Session (shell)

Infine, mostra lo schema delle Locations tabella:

.schema LocationsCode 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.