Du kan lägga till en genererad kolumn till en befintlig tabell i SQLite genom att använda ALTER TABLE
uttalande.
SQLites implementering av ALTER TABLE
uttalandet är mycket begränsat, men det tillåter dig att lägga till en kolumn – inklusive genererade kolumner.
Genererade kolumner (även kända som "beräknade kolumner") är kolumner som får sitt värde från ett uttryck som beräknar värden från andra kolumner.
Exempel
Här är ett enkelt exempel att visa.
Original tabell
Låt oss först skapa en tabell utan en genererad kolumn och infoga några data:
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;
Resultat:
Id FirstName LastName ---------- ---------- ---------- 1 Barney Rubble 2 Peter Griffin 3 Fritz The Cat
Lägg till den genererade kolumnen
Låt oss nu lägga till en genererad kolumn i den tabellen.
ALTER TABLE Person ADD COLUMN
FullName GENERATED ALWAYS AS (FirstName || ' ' || LastName);
SELECT * FROM Person;
Resultat:
Id FirstName LastName FullName ---------- ---------- ---------- ------------- 1 Barney Rubble Barney Rubble 2 Peter Griffin Peter Griffin 3 Fritz The Cat Fritz The Cat
En genererad kolumn som heter Fullnamn lades till. Den här kolumnen sammanfogar FirstName kolumnen med Efternamn kolumnen, och därför behöver alla som frågar den här tabellen inte längre utföra den sammanlänkningen själva i sin fråga.
Uppdatera data
Du kan inte uppdatera data i den genererade kolumnen direkt. Du måste uppdatera data i de underliggande kolumnerna som bidrar till dess värde.
Så om vi ville uppdatera Barney Rubble till Betty Rubble , skulle vi behöva uppdatera Förnamn kolumn.
UPDATE Person
SET FirstName = 'Betty'
WHERE Id = 1;
SELECT * FROM Person;
Resultat:
Id FirstName LastName FullName ---------- ---------- ---------- --------------- 1 Betty Rubble Betty Rubble 2 Peter Griffin Peter Griffin 3 Fritz The Cat Fritz The Cat