Du kan tilføje en genereret kolonne til en eksisterende tabel i SQLite ved at bruge ALTER TABLE
erklæring.
SQLites implementering af ALTER TABLE
sætningen er meget begrænset, men den giver dig mulighed for at tilføje en kolonne – inklusive genererede kolonner.
Genererede kolonner (også kendt som "beregnede kolonner") er kolonner, der får deres værdi fra et udtryk, der beregner værdier fra andre kolonner.
Eksempel
Her er et simpelt eksempel at demonstrere.
Original tabel
Lad os først oprette en tabel uden en genereret kolonne og indsætte nogle 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
Tilføj den genererede kolonne
Lad os nu tilføje en genereret kolonne i den tabel.
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 genereret kolonne kaldet Fuldt navn blev tilføjet. Denne kolonne sammenkæder Fornavn kolonne med Efternavn kolonne, og derfor behøver enhver, der forespørger i denne tabel, ikke længere selv udføre denne sammenkædning i deres forespørgsel.
Opdatering af data
Du kan ikke opdatere data i den genererede kolonne direkte. Du skal opdatere dataene i de underliggende kolonner, der bidrager til deres værdi.
Så hvis vi ville opdatere Barney Rubble til Betty Rubble , skal vi opdatere Fornavn kolonne.
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