Coluna de renomeação SQLite

Resumo : neste tutorial você aprenderá passo a passo como renomear uma coluna de uma tabela no SQLite.

Introdução à instrução SQLite ALTER TABLE RENAME COLUMN

SQLite adicionou suporte para renomear colunas desde a versão 3.25.0 usando a ALTER TABLEinstrução com a seguinte sintaxe:

ALTER TABLE table_name
RENAME COLUMN current_name TO new_name;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Nesta sintaxe:

  • Primeiro, especifique o nome da tabela após as ALTER TABLEpalavras-chave.
  • Segundo, especifique o nome da coluna que deseja renomear após as RENAME COLUMNpalavras-chave e o novo nome após a TOpalavra-chave.

Exemplo SQLite ALTER TABLE RENAME COLUMN

Vejamos um exemplo de uso da ALTER TABLE RENAME COLUMNinstrução.

Primeiro, crie uma nova tabela chamada Locations:

CREATE TABLE Locations(
	LocationId INTEGER PRIMARY KEY,
	Address TEXT NOT NULL,
	City TEXT NOT NULL,
	State TEXT NOT NULL,
	Country TEXT NOT NULL
);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Segundo, insira uma nova linha na Locationstabela usando a INSERTinstrução:

INSERT INTO Locations(Address,City,State,Country)
VALUES('3960 North 1st Street','San Jose','CA','USA');Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Terceiro, renomeie a coluna Addressusando Streeta ALTER TABLE RENAME COLUMNinstrução:

ALTER TABLE Locations
RENAME COLUMN Address TO Street;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Quarto, consulte os dados da Locationstabela:

SELECT * FROM Locations;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

LocationId  Street                 City        State       Country
----------  ---------------------  ----------  ----------  ----------
1           3960 North 1st Street  San Jose    CA          USALinguagem de código:  Sessão Shell  ( shell )

Por fim, mostre o esquema da Locationstabela:

.schema LocationsLinguagem de código:  Sessão Shell  ( shell )

Saída:

CREATE TABLE Locations(
        LocationId INTEGER PRIMARY KEY,
        Street TEXT NOT NULL,
        City TEXT NOT NULL,
        State TEXT NOT NULL,
        Country TEXT NOT NULL
);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A maneira antiga de renomear coluna

SQLite não suportava a ALTER TABLE RENAME COLUMNsintaxe antes da versão 3.25.0.

Se você estiver usando o SQLite com versão inferior a 3.25.0 e não conseguiu atualizar, siga estas etapas para renomear uma coluna:

  • Primeiro, inicie uma transação .
  • Segundo, crie uma nova tabela cuja estrutura seja igual à original, exceto pela coluna que você deseja renomear.
  • Terceiro, copie os dados da tabela original para a nova tabela.
  • Quarto, elimine a tabela original.
  • Quinto, renomeie a nova tabela para a tabela original.
  • Finalmente, confirme a transação.

Exemplo de renomeação de coluna

A instrução a seguir recria a Locationstabela:

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
);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

E esta INSERTinstrução insere uma nova linha na Locationstabela:

INSERT INTO Locations(Address,City,State,Country)
VALUES('3960 North 1st Street','San Jose','CA','USA');Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Suponha que você queira alterar a coluna Addresspara Street.

Primeiro, inicie uma nova transação :

BEGIN TRANSACTION;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Segundo, crie uma nova tabela chamada LocationsTempcom a mesma estrutura da Locationstabela, exceto pela Addresscoluna:

CREATE TABLE LocationsTemp(
	LocationId INTEGER PRIMARY KEY,
	Street TEXT NOT NULL,
	City TEXT NOT NULL,
	State TEXT NOT NULL,
	Country TEXT NOT NULL
);
Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Terceiro, copie os dados da tabela Locationspara LocationsTemp:

INSERT INTO LocationsTemp(Street,City,State,Country)
SELECT Address,City,State,Country
FROM Locations;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Quarto, solte a Locationstabela:

DROP TABLE Locations;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Quinto, renomeie a tabela LocationsTemppara Locations:

ALTER TABLE LocationsTemp 
RENAME TO Locations;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Finalmente, confirme a transação:

COMMIT;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Se você consultar a Locationstabela, verá que a coluna Addressfoi renomeada para Street:

SELECT * FROM Locations;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Aqui está a saída:

exemplo de renomeação de coluna sqlite

Resumo

  • Use ALTER TABLE RENAME COLUMNpara renomear uma coluna em uma tabela.
  • Se você estiver usando o SQLite 3.25.0, deverá atualizá-lo e usar a nova sintaxe. Caso contrário, você precisará seguir as etapas descritas acima para renomear uma coluna.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *