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 coluna desde a versão 3.25.0 usando o
ALTER TABLE
declaração com a seguinte sintaxe:ALTER TABLE table_name
RENAME COLUMN current_name TO new_name;
Code language: SQL (Structured Query Language) (sql)
Nesta sintaxe:
- Primeiro, especifique o nome da tabela após
ALTER TABLE
palavras-chave. - Segundo, especifique o nome da coluna que você deseja renomear após
RENAME COLUMN
palavras-chave e o novo nome após oTO
palavra-chave.
Exemplo SQLite ALTER TABLE RENAME COLUMN
Vamos dar um exemplo de uso do
ALTER TABLE RENAME COLUMN
demonstraçã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
);
Code language: SQL (Structured Query Language) (sql)
Segundo, insira uma nova linha em
Locations
tabela usando o INSERT
demonstração:INSERT INTO Locations(Address,City,State,Country)
VALUES('3960 North 1st Street','San Jose','CA','USA');
Code language: SQL (Structured Query Language) (sql)
Terceiro, renomeie a coluna
Address
para Street
usando o ALTER TABLE RENAME COLUMN
demonstração:ALTER TABLE Locations
RENAME COLUMN Address TO Street;
Code language: SQL (Structured Query Language) (sql)
Quarto, consultar dados de
Locations
tabela:SELECT * FROM Locations;
Code language: SQL (Structured Query Language) (sql)
Saída:
LocationId Street City State Country
---------- --------------------- ---------- ---------- ----------
1 3960 North 1st Street San Jose CA USA
Code language: Shell Session (shell)
Por fim, mostre o esquema dos
Locations
tabela:.schema Locations
Code language: Shell Session (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
);
Code language: SQL (Structured Query Language) (sql)
A maneira antiga de renomear a coluna
SQLite não suportava
ALTER TABLE RENAME COLUMN
sintaxe antes da versão 3.25.0. Se você estiver usando o SQLite com a versão inferior a 3.25.0 e não puder 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 os
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
);
Code language: SQL (Structured Query Language) (sql)
E este
INSERT
instrução insere uma nova linha em Locations
tabela:INSERT INTO Locations(Address,City,State,Country)
VALUES('3960 North 1st Street','San Jose','CA','USA');
Code language: SQL (Structured Query Language) (sql)
Suponha que você queira alterar a coluna
Address
para Street
. Primeiro, inicie uma nova transação:
BEGIN TRANSACTION;
Code language: SQL (Structured Query Language) (sql)
Segundo, crie uma nova tabela chamada
LocationsTemp
com a mesma estrutura do Locations
tabela exceto para o 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
);
Code language: SQL (Structured Query Language) (sql)
Terceiro, copie os dados da tabela
Locations
para LocationsTemp
:INSERT INTO LocationsTemp(Street,City,State,Country)
SELECT Address,City,State,Country
FROM Locations;
Code language: SQL (Structured Query Language) (sql)
Quarto, solte os
Locations
tabela:DROP TABLE Locations;
Code language: SQL (Structured Query Language) (sql)
Quinto, renomeie a tabela
LocationsTemp
para Locations
:ALTER TABLE LocationsTemp
RENAME TO Locations;
Code language: SQL (Structured Query Language) (sql)
Por fim, confirme a transação:
COMMIT;
Code language: SQL (Structured Query Language) (sql)
Se você consultar os
Locations
tabela, você verá que a coluna Address
foi renomeado para Street
:SELECT * FROM Locations;
Code language: SQL (Structured Query Language) (sql)
Aqui está a saída:
Resumo
- Use a
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ê precisa seguir as etapas descritas acima para renomear uma coluna.