sql >> Databáze >  >> RDS >> SQLite

Přidejte vygenerovaný sloupec do tabulky v SQLite

Vygenerovaný sloupec můžete přidat do existující tabulky v SQLite pomocí ALTER TABLE prohlášení.

SQLite implementace ALTER TABLE příkaz je velmi omezený, ale umožňuje vám přidat sloupec – včetně vygenerovaných sloupců.

Vygenerované sloupce (také známé jako „počítané sloupce“) jsou sloupce, které získávají svou hodnotu z výrazu, který počítá hodnoty z jiných sloupců.

Příklad

Zde je jednoduchý příklad k demonstraci.

Původní tabulka

Nejprve vytvoříme tabulku bez vygenerovaného sloupce a vložíme nějaká 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;

Výsledek:

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

Přidat vygenerovaný sloupec

Nyní do této tabulky přidáme vygenerovaný sloupec.

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

SELECT * FROM Person;

Výsledek:

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

Vygenerovaný sloupec s názvem Celé jméno byl přidán. Tento sloupec zřetězí Jméno sloupec s Příjmení a proto kdokoli, kdo se dotazuje na tuto tabulku, již nemusí toto zřetězení sám provádět ve svém dotazu.

Aktualizace dat

Data ve vygenerovaném sloupci nelze aktualizovat přímo. Musíte aktualizovat data v podkladových sloupcích, které přispívají k jeho hodnotě.

Pokud bychom tedy chtěli aktualizovat Barney Rubble na Betty Rubble , museli bychom aktualizovat Jméno sloupec.

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

SELECT * FROM Person;

Výsledek:

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

  1. Jak dešifrovat heslo ze serveru SQL?

  2. Průchozí dotaz SQL Server jako základ pro sadu záznamů DAO v aplikaci Access

  3. Jak třídit v SQL

  4. 2 způsoby, jak vrátit řádky, které obsahují pouze alfanumerické znaky v Oracle