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 TABLEpalavras-chave. - Segundo, especifique o nome da coluna que você deseja renomear após
RENAME COLUMNpalavras-chave e o novo nome após oTOpalavra-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 USACode language: Shell Session (shell) Por fim, mostre o esquema dos
Locations tabela:.schema LocationsCode 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 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ê precisa seguir as etapas descritas acima para renomear uma coluna.