Você pode adicionar uma coluna gerada a uma tabela existente no SQLite usando o
ALTER TABLE
demonstração. Implementação do SQLite do
ALTER TABLE
A instrução é muito limitada, mas permite adicionar uma coluna – incluindo colunas geradas. Colunas geradas (também conhecidas como “colunas computadas”) são colunas que obtêm seu valor de uma expressão que calcula valores de outras colunas.
Exemplo
Aqui está um exemplo simples para demonstrar.
Tabela Original
Vamos primeiro criar uma tabela sem uma coluna gerada e inserir alguns dados:
CREATE TABLE Person(
Id INTEGER PRIMARY KEY,
FirstName,
LastName
);
INSERT INTO Person VALUES
( 1, 'Barney', 'Rubble' ),
( 2, 'Peter', 'Griffin' ),
( 3, 'Fritz', 'The Cat' );
SELECT * FROM Person;
Resultado:
Id FirstName LastName ---------- ---------- ---------- 1 Barney Rubble 2 Peter Griffin 3 Fritz The Cat
Adicione a coluna gerada
Agora vamos adicionar uma coluna gerada nessa tabela.
ALTER TABLE Person ADD COLUMN
FullName GENERATED ALWAYS AS (FirstName || ' ' || LastName);
SELECT * FROM Person;
Resultado:
Id FirstName LastName FullName ---------- ---------- ---------- ------------- 1 Barney Rubble Barney Rubble 2 Peter Griffin Peter Griffin 3 Fritz The Cat Fritz The Cat
Uma coluna gerada chamada FullName foi adicionado. Esta coluna concatena o FirstName coluna com o Sobrenome coluna e, portanto, qualquer pessoa que consultar essa tabela não precisará mais realizar essa concatenação em sua consulta.
Atualizando dados
Você não pode atualizar os dados na coluna gerada diretamente. Você precisa atualizar os dados nas colunas subjacentes que contribuem para seu valor.
Então, se quisermos atualizar Barney Rubble para Betty Rubble , precisaríamos atualizar o FirstName coluna.
UPDATE Person
SET FirstName = 'Betty'
WHERE Id = 1;
SELECT * FROM Person;
Resultado:
Id FirstName LastName FullName ---------- ---------- ---------- --------------- 1 Betty Rubble Betty Rubble 2 Peter Griffin Peter Griffin 3 Fritz The Cat Fritz The Cat