SQLite
 sql >> база данни >  >> RDS >> SQLite

Добавете генерирана колона към таблица в SQLite

Можете да добавите генерирана колона към съществуваща таблица в SQLite, като използвате ALTER TABLE изявление.

Реализацията на SQLite на ALTER TABLE изразът е много ограничен, но ви позволява да добавите колона – включително генерирани колони.

Генерираните колони (известни също като „изчислени колони“) са колони, които получават стойността си от израз, който изчислява стойности от други колони.

Пример

Ето един прост пример за демонстрация.

Оригинална таблица

Нека първо създадем таблица без генерирана колона и да вмъкнем някои данни:

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;

Резултат:

Id          FirstName   LastName  
----------  ----------  ----------
1           Barney      Rubble    
2           Peter       Griffin   
3           Fritz       The Cat   

Добавете генерираната колона

Сега нека добавим генерирана колона към тази таблица.

ALTER TABLE Person ADD COLUMN 
  FullName GENERATED ALWAYS AS (FirstName || ' ' || LastName);

SELECT * FROM Person;

Резултат:

Id          FirstName   LastName    FullName     
----------  ----------  ----------  -------------
1           Barney      Rubble      Barney Rubble
2           Peter       Griffin     Peter Griffin
3           Fritz       The Cat     Fritz The Cat

Генерирана колона, наречена FullName беше добавен. Тази колона обединява First Name колона с Фамилия колона и следователно всеки, който прави заявки към тази таблица, вече не трябва да извършва това обединяване в заявката си.

Актуализиране на данните

Не можете директно да актуализирате данните в генерираната колона. Трябва да актуализирате данните в основните колони, които допринасят за стойността им.

Така че, ако искаме да актуализираме Barney Rubble до Бети Ръбъл , ще трябва да актуализираме First Name колона.

UPDATE Person 
SET FirstName = 'Betty'
WHERE Id = 1;

SELECT * FROM Person;

Резултат:

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. Изпратете приложение с база данни

  2. Задайте стойност по подразбиране на целочислена колона SQLite

  3. Кога се изпълнява SQLiteOpenHelper onCreate() / onUpgrade()?

  4. 2 начина за връщане на нечислови стойности в SQLite

  5. SQLite избира редове, ако времевата марка съвпада с днешната дата