sql >> Base de Datos >  >> RDS >> SQLite

Columna de cambio de nombre de SQLite

Resumen :en este tutorial, aprenderá paso a paso cómo cambiar el nombre de una columna de una tabla en SQLite.

Introducción a la sentencia ALTER TABLE RENAME COLUMN de SQLite

SQLite agregó soporte para cambiar el nombre de la columna desde la versión 3.25.0 usando ALTER TABLE declaración con la siguiente sintaxis:

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

En esta sintaxis:

  • Primero, especifique el nombre de la tabla después de ALTER TABLE palabras clave.
  • Segundo, especifique el nombre de la columna que desea cambiar de nombre después de RENAME COLUMN palabras clave y el nuevo nombre después de TO palabra clave.

Ejemplo de ALTER TABLE RENAME COLUMN de SQLite

Tomemos un ejemplo del uso de ALTER TABLE RENAME COLUMN declaración.

Primero, crea una nueva tabla llamada 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)

En segundo lugar, inserte una nueva fila en Locations tabla usando el INSERT declaración:

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

Tercero, cambie el nombre de la columna Address a Street mediante el uso de ALTER TABLE RENAME COLUMN declaración:

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

Cuarto, consulte los datos de las Locations tabla:

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

Salida:

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

Finalmente, muestre el esquema de las Locations tabla:

.schema LocationsCode language: Shell Session (shell)

Salida:

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)

La antigua forma de cambiar el nombre de la columna

SQLite no era compatible con ALTER TABLE RENAME COLUMN sintaxis anterior a la versión 3.25.0.

Si está utilizando SQLite con una versión anterior a la 3.25.0 y no pudo actualizar, debe seguir estos pasos para cambiar el nombre de una columna:

  • Primero, inicie una transacción.
  • Segundo, cree una nueva tabla cuya estructura sea la misma que la original excepto por la columna que desea cambiar de nombre.
  • Tercero, copie los datos de la tabla original a la nueva tabla.
  • Cuarto, suelte la tabla original.
  • Quinto, cambie el nombre de la nueva tabla a la tabla original.
  • Finalmente, confirme la transacción.

Ejemplo de cambio de nombre de columna

La siguiente instrucción recrea las Locations tabla:

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)

Y este INSERT instrucción inserta una nueva fila en Locations tabla:

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

Suponga que desea cambiar la columna Address a Street .

Primero, inicie una nueva transacción:

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

En segundo lugar, cree una nueva tabla llamada LocationsTemp con la misma estructura que las Locations tabla excepto por la Address columna:

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)

Tercero, copie los datos de la tabla Locations a LocationsTemp :

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

Cuarto, suelte las Locations tabla:

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

Quinto, cambie el nombre de la tabla LocationsTemp a Locations :

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

Finalmente, confirme la transacción:

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

Si consulta las Locations tabla, verá que la columna Address ha sido renombrado a Street :

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

Aquí está la salida:

Resumen

  • Utilice ALTER TABLE RENAME COLUMN para cambiar el nombre de una columna en una tabla.
  • Si usa SQLite 3.25.0, debe actualizarlo y usar la nueva sintaxis. De lo contrario, debe seguir los pasos descritos anteriormente para cambiar el nombre de una columna.