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 TABLE
instruçã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 TABLE
palavras-chave. - Segundo, especifique o nome da coluna que deseja renomear após as
RENAME COLUMN
palavras-chave e o novo nome após aTO
palavra-chave.
Exemplo SQLite ALTER TABLE RENAME COLUMN
Vejamos um exemplo de uso da ALTER TABLE RENAME COLUMN
instruçã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 Locations
tabela usando a INSERT
instruçã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 Address
usando Street
a ALTER TABLE RENAME COLUMN
instrução:
ALTER TABLE Locations
RENAME COLUMN Address TO Street;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Quarto, consulte os dados da Locations
tabela:
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 USA
Linguagem de código: Sessão Shell ( shell )
Por fim, mostre o esquema da Locations
tabela:
.schema Locations
Linguagem 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 COLUMN
sintaxe 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 Locations
tabela:
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 INSERT
instrução insere uma nova linha na Locations
tabela:
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 Address
para 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 LocationsTemp
com a mesma estrutura da Locations
tabela, exceto pela Address
coluna:
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 Locations
para 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 Locations
tabela:
DROP TABLE Locations;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Quinto, renomeie a tabela LocationsTemp
para 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 Locations
tabela, verá que a coluna Address
foi renomeada para Street
:
SELECT * FROM Locations;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Aqui está a saída:
Resumo
- Use
ALTER TABLE RENAME COLUMN
para 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.