V SQLite můžete použít ALTER TABLE příkaz k přidání sloupce do existující tabulky.
To je vlastně jedna z mála věcí, které můžete dělat s ALTER TABLE příkaz v SQLite. Jediné, co můžete dělat s ALTER TABLE příkazem v SQLite je přejmenovat tabulku, přejmenovat sloupec a přidat nový sloupec do existující tabulky.
Příklad 1
Představte si, že máme následující tabulku:
CREATE TABLE Cats(
CatId INTEGER PRIMARY KEY,
CatName
); A nyní chceme přidat sloupec s názvem DOB . Mohli bychom to udělat pomocí následujícího kódu:
ALTER TABLE Cats ADD COLUMN DOB; Je to tak jednoduché.
Omezení
Můžete také zadat další specifikace k definici, jako jsou omezení atd., ale existují určitá omezení.
Konkrétně:
- Nový sloupec nemůže mít
PRIMARY KEYneboUNIQUEomezení. - Nový sloupec nemůže mít výchozí hodnotu
CURRENT_TIME,CURRENT_DATE,CURRENT_TIMESTAMP, nebo výraz v závorkách. - Pokud
NOT NULLomezení, pak musí mít sloupec výchozí hodnotu jinou nežNULL. - Pokud jsou povolena omezení cizího klíče a sloupec s
REFERENCESje přidána klauzule, sloupec musí mít výchozí hodnotuNULL. - Pokud je nový sloupec vygenerovaný, nelze jej
STOREDsloupec. Může to býtVIRTUALi když.
Příklad 2
Zde je další příklad, tentokrát k definici nového sloupce přidávám další specifikace:
CREATE TABLE Dogs(
DogId INTEGER PRIMARY KEY,
DogName
); A nyní chceme přidat sloupec s názvem DOB . Mohli bychom to udělat pomocí následujícího kódu:
ALTER TABLE Dogs
ADD COLUMN Score NOT NULL DEFAULT 0; Zkontrolujte změny
Existuje několik způsobů, jak zkontrolovat strukturu tabulky v SQLite.
Jedním ze způsobů je použití PRAGMA table_info() prohlášení.
PRAGMA table_info(Dogs); Výsledek:
cid name type notnull dflt_value pk --- ------- ------- ---------- ---------- -- 0 DogId INTEGER 0 1 1 DogName 0 0 2 Score 1 0 0
Vidíme nový sloupec a vidíme, že má NOT NULL omezení a že jeho výchozí hodnota je 0 .