Puoi aggiungere una colonna generata a una tabella esistente in SQLite utilizzando ALTER TABLE
dichiarazione.
L'implementazione di SQLite di ALTER TABLE
istruzione è molto limitata, ma ti consente di aggiungere una colonna, comprese le colonne generate.
Le colonne generate (note anche come "colonne calcolate") sono colonne che ottengono il loro valore da un'espressione che calcola i valori da altre colonne.
Esempio
Ecco un semplice esempio da dimostrare.
Tabella Originale
Per prima cosa creiamo una tabella senza una colonna generata e inseriamo alcuni dati:
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;
Risultato:
Id FirstName LastName ---------- ---------- ---------- 1 Barney Rubble 2 Peter Griffin 3 Fritz The Cat
Aggiungi la colonna generata
Ora aggiungiamo una colonna generata a quella tabella.
ALTER TABLE Person ADD COLUMN
FullName GENERATED ALWAYS AS (FirstName || ' ' || LastName);
SELECT * FROM Person;
Risultato:
Id FirstName LastName FullName ---------- ---------- ---------- ------------- 1 Barney Rubble Barney Rubble 2 Peter Griffin Peter Griffin 3 Fritz The Cat Fritz The Cat
Una colonna generata denominata FullName è stato aggiunto. Questa colonna concatena il Nome colonna con il Cognome colonna, e quindi chiunque interroghi questa tabella non ha più bisogno di eseguire quella concatenazione nella propria query.
Aggiornamento dei dati
Non puoi aggiornare direttamente i dati nella colonna generata. Devi aggiornare i dati nelle colonne sottostanti che contribuiscono al suo valore.
Quindi, se volessimo aggiornare Barney Rubble a Betty Rubble , dovremmo aggiornare il Nome colonna.
UPDATE Person
SET FirstName = 'Betty'
WHERE Id = 1;
SELECT * FROM Person;
Risultato:
Id FirstName LastName FullName ---------- ---------- ---------- --------------- 1 Betty Rubble Betty Rubble 2 Peter Griffin Peter Griffin 3 Fritz The Cat Fritz The Cat