SQLite
 sql >> Base de données >  >> RDS >> SQLite

Renommer la colonne SQLite

Résumé :dans ce tutoriel, vous apprendrez pas à pas comment renommer une colonne d'une table en SQLite.

Introduction à l'instruction SQLite ALTER TABLE RENAME COLUMN

SQLite a ajouté le support pour renommer la colonne depuis la version 3.25.0 en utilisant ALTER TABLE déclaration avec la syntaxe suivante :

ALTER TABLE table_name
RENAME COLUMN current_name TO new_name;Code language: SQL (Structured Query Language) (sql)

Dans cette syntaxe :

  • Tout d'abord, spécifiez le nom de la table après ALTER TABLE mots-clés.
  • Deuxièmement, spécifiez le nom de la colonne que vous souhaitez renommer après le RENAME COLUMN mots-clés et le nouveau nom après le TO mot-clé.

Exemple SQLite ALTER TABLE RENAME COLUMN

Prenons un exemple d'utilisation de la ALTER TABLE RENAME COLUMN déclaration.

Tout d'abord, créez une nouvelle table appelée 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)

Deuxièmement, insérez une nouvelle ligne dans les Locations table en utilisant le INSERT déclaration :

INSERT INTO Locations(Address,City,State,Country)
VALUES('3960 North 1st Street','San Jose','CA','USA');Code language: SQL (Structured Query Language) (sql)

Troisièmement, renommez la colonne Address à Street en utilisant la commande ALTER TABLE RENAME COLUMN déclaration :

ALTER TABLE Locations
RENAME COLUMN Address TO Street;Code language: SQL (Structured Query Language) (sql)

Quatrièmement, interrogez les données des Locations tableau :

SELECT * FROM Locations;Code language: SQL (Structured Query Language) (sql)

Sortie :

LocationId  Street                 City        State       Country
----------  ---------------------  ----------  ----------  ----------
1           3960 North 1st Street  San Jose    CA          USACode language: Shell Session (shell)

Enfin, affichez le schéma des Locations tableau :

.schema LocationsCode language: Shell Session (shell)

Sortie :

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)

L'ancienne méthode pour renommer une colonne

SQLite ne supportait pas la ALTER TABLE RENAME COLUMN syntaxe avant la version 3.25.0.

Si vous utilisez SQLite avec une version antérieure à 3.25.0 et que vous n'avez pas pu mettre à niveau, vous devez suivre ces étapes pour renommer une colonne :

  • Tout d'abord, démarrez une transaction.
  • Deuxièmement, créez une nouvelle table dont la structure est la même que celle d'origine, à l'exception de la colonne que vous souhaitez renommer.
  • Troisièmement, copiez les données de la table d'origine vers la nouvelle table.
  • Quatrièmement, supprimez la table d'origine.
  • Cinquièmement, renommez la nouvelle table en table d'origine.
  • Enfin, validez la transaction.

Exemple de changement de nom de colonne

L'instruction suivante recrée les Locations tableau :

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)

Et ce INSERT instruction insère une nouvelle ligne dans les Locations tableau :

INSERT INTO Locations(Address,City,State,Country)
VALUES('3960 North 1st Street','San Jose','CA','USA');Code language: SQL (Structured Query Language) (sql)

Supposons que vous souhaitiez modifier la colonne Address à Street .

Tout d'abord, démarrez une nouvelle transaction :

BEGIN TRANSACTION;Code language: SQL (Structured Query Language) (sql)

Deuxièmement, créez une nouvelle table appelée LocationsTemp avec la même structure que les Locations table sauf pour l'Address colonne :

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)

Troisièmement, copiez les données de la table Locations à LocationsTemp :

INSERT INTO LocationsTemp(Street,City,State,Country)
SELECT Address,City,State,Country
FROM Locations;Code language: SQL (Structured Query Language) (sql)

Quatrièmement, supprimez les Locations tableau :

DROP TABLE Locations;Code language: SQL (Structured Query Language) (sql)

Cinquièmement, renommez la table LocationsTemp vers Locations :

ALTER TABLE LocationsTemp 
RENAME TO Locations;Code language: SQL (Structured Query Language) (sql)

Enfin, validez la transaction :

COMMIT;Code language: SQL (Structured Query Language) (sql)

Si vous interrogez les Locations tableau, vous verrez que la colonne Address a été renommé Street :

SELECT * FROM Locations;Code language: SQL (Structured Query Language) (sql)

Voici le résultat :

Résumé

  • Utilisez la ALTER TABLE RENAME COLUMN pour renommer une colonne dans une table.
  • Si vous utilisez SQLite 3.25.0, vous devez le mettre à niveau et utiliser la nouvelle syntaxe. Sinon, vous devez suivre les étapes décrites ci-dessus pour renommer une colonne.