Możesz dodać wygenerowaną kolumnę do istniejącej tabeli w SQLite, używając ALTER TABLE
oświadczenie.
Implementacja w SQLite ALTER TABLE
oświadczenie jest bardzo ograniczone, ale pozwala dodać kolumnę – w tym kolumny wygenerowane.
Wygenerowane kolumny (znane również jako „kolumny wyliczane”) to kolumny, które uzyskują swoją wartość z wyrażenia, które oblicza wartości z innych kolumn.
Przykład
Oto prosty przykład do zademonstrowania.
Oryginalna tabela
Najpierw utwórzmy tabelę bez wygenerowanej kolumny i wstawmy trochę danych:
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;
Wynik:
Id FirstName LastName ---------- ---------- ---------- 1 Barney Rubble 2 Peter Griffin 3 Fritz The Cat
Dodaj wygenerowaną kolumnę
Teraz dodajmy wygenerowaną kolumnę do tej tabeli.
ALTER TABLE Person ADD COLUMN
FullName GENERATED ALWAYS AS (FirstName || ' ' || LastName);
SELECT * FROM Person;
Wynik:
Id FirstName LastName FullName ---------- ---------- ---------- ------------- 1 Barney Rubble Barney Rubble 2 Peter Griffin Peter Griffin 3 Fritz The Cat Fritz The Cat
Wygenerowana kolumna o nazwie FullName zostało dodane. Ta kolumna łączy Imię kolumna z LastName kolumna, a zatem każdy, kto wysyła zapytanie do tej tabeli, nie musi już wykonywać tej konkatenacji samodzielnie w swoim zapytaniu.
Aktualizacja danych
Nie możesz bezpośrednio aktualizować danych w wygenerowanej kolumnie. Musisz zaktualizować dane w podstawowych kolumnach, które wpływają na jego wartość.
Więc gdybyśmy chcieli zaktualizować Barney Rubble do Betty Rubble , musielibyśmy zaktualizować Imię kolumna.
UPDATE Person
SET FirstName = 'Betty'
WHERE Id = 1;
SELECT * FROM Person;
Wynik:
Id FirstName LastName FullName ---------- ---------- ---------- --------------- 1 Betty Rubble Betty Rubble 2 Peter Griffin Peter Griffin 3 Fritz The Cat Fritz The Cat