U kunt een gegenereerde kolom toevoegen aan een bestaande tabel in SQLite met behulp van de ALTER TABLE
verklaring.
SQLite's implementatie van de ALTER TABLE
statement is zeer beperkt, maar u kunt er wel een kolom aan toevoegen – inclusief gegenereerde kolommen.
Gegenereerde kolommen (ook wel 'berekende kolommen' genoemd) zijn kolommen die hun waarde halen uit een expressie die waarden uit andere kolommen berekent.
Voorbeeld
Hier is een eenvoudig voorbeeld om te demonstreren.
Originele tabel
Laten we eerst een tabel maken zonder een gegenereerde kolom en wat gegevens invoegen:
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;
Resultaat:
Id FirstName LastName ---------- ---------- ---------- 1 Barney Rubble 2 Peter Griffin 3 Fritz The Cat
Voeg de gegenereerde kolom toe
Laten we nu een gegenereerde kolom aan die tabel toevoegen.
ALTER TABLE Person ADD COLUMN
FullName GENERATED ALWAYS AS (FirstName || ' ' || LastName);
SELECT * FROM Person;
Resultaat:
Id FirstName LastName FullName ---------- ---------- ---------- ------------- 1 Barney Rubble Barney Rubble 2 Peter Griffin Peter Griffin 3 Fritz The Cat Fritz The Cat
Een gegenereerde kolom met de naam FullName was toegevoegd. Deze kolom voegt de FirstName . samen kolom met de Achternaam kolom, en daarom hoeft iedereen die deze tabel doorzoekt die aaneenschakeling niet meer zelf uit te voeren in zijn zoekopdracht.
Gegevens bijwerken
U kunt gegevens in de gegenereerde kolom niet rechtstreeks bijwerken. U moet de gegevens bijwerken in de onderliggende kolommen die bijdragen aan de waarde ervan.
Dus als we Barney Rubble willen updaten naar Betty Rubble , moeten we de FirstName . bijwerken kolom.
UPDATE Person
SET FirstName = 'Betty'
WHERE Id = 1;
SELECT * FROM Person;
Resultaat:
Id FirstName LastName FullName ---------- ---------- ---------- --------------- 1 Betty Rubble Betty Rubble 2 Peter Griffin Peter Griffin 3 Fritz The Cat Fritz The Cat