sql >> Database teknologi >  >> RDS >> SQLite

Tilføj en genereret kolonne til en tabel i SQLite

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  

  1. CURRENT_TIME Eksempler – MySQL

  2. MySQL Tutorial – Forstå sekunderne bag Master Value

  3. MySQL-forespørgsel, der skelner mellem store og små bogstaver

  4. MySQL Storage Engine Optimization:Konfiguration af InnoDB-optimering til høj ydeevne