SQLite
 sql >> Baza danych >  >> RDS >> SQLite

Dodaj wygenerowaną kolumnę do tabeli w SQLite

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  

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. dołącz do dwóch różnych kolumn tabeli sqlite3

  2. SQLite IN

  3. Eksportuj całą bazę danych SQLite do pliku SQL

  4. Spowodowane przez:android.database.sqlite.SQLiteException:brak takiej tabeli:(kod 1) Android

  5. Czy możliwa jest migracja z Realm do Sqlite?