SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

Renomear Coluna 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 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 o TO 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          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 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.