Puede agregar una columna generada a una tabla existente en SQLite usando ALTER TABLE
declaración.
Implementación de SQLite de ALTER TABLE
La declaración es muy limitada, pero le permite agregar una columna, incluidas las columnas generadas.
Las columnas generadas (también conocidas como "columnas calculadas") son columnas que obtienen su valor de una expresión que calcula valores de otras columnas.
Ejemplo
Aquí hay un ejemplo simple para demostrarlo.
Mesa original
Primero creemos una tabla sin una columna generada e insertemos algunos datos:
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
Agregar la columna generada
Ahora agreguemos una columna generada a esa tabla.
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
Una columna generada llamada FullName fue añadido. Esta columna concatena el FirstName columna con el Apellido columna y, por lo tanto, cualquiera que consulte esta tabla ya no necesita realizar esa concatenación en su consulta.
Actualización de datos
No puede actualizar los datos en la columna generada directamente. Debe actualizar los datos en las columnas subyacentes que contribuyen a su valor.
Entonces, si quisiéramos actualizar Barney Rubble a Betty Escombros , tendríamos que actualizar el FirstName columna.
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