W SQLite możesz użyć ALTER TABLE oświadczenie, aby dodać kolumnę do istniejącej tabeli.
Jest to właściwie jedna z niewielu rzeczy, które możesz zrobić za pomocą ALTER TABLE instrukcja w SQLite. Jedyne rzeczy, które możesz zrobić za pomocą ALTER TABLE Instrukcja w SQLite to zmiana nazwy tabeli, zmiana nazwy kolumny i dodanie nowej kolumny do istniejącej tabeli.
Przykład 1
Wyobraź sobie, że mamy następującą tabelę:
CREATE TABLE Cats(
CatId INTEGER PRIMARY KEY,
CatName
); A teraz chcemy dodać kolumnę o nazwie DOB . Możemy to zrobić za pomocą następującego kodu:
ALTER TABLE Cats ADD COLUMN DOB; To takie proste.
Ograniczenia
Możesz również podać inne specyfikacje do definicji, takie jak ograniczenia itp., ale istnieją pewne ograniczenia.
W szczególności:
- Nowa kolumna nie może mieć
PRIMARY KEYlubUNIQUEograniczenie. - Nowa kolumna nie może mieć wartości domyślnej
CURRENT_TIME,CURRENT_DATE,CURRENT_TIMESTAMPlub wyrażenie w nawiasach. - Jeśli
NOT NULLokreślono ograniczenie, kolumna musi mieć wartość domyślną inną niżNULL. - Jeśli włączone są ograniczenia klucza obcego i kolumna z
REFERENCESzostała dodana klauzula, kolumna musi mieć wartość domyślnąNULL. - Jeśli nowa kolumna jest kolumną generowaną, nie może być
STOREDkolumna. Może to byćVIRTUALjednak kolumna.
Przykład 2
Oto kolejny przykład, tym razem dodaję więcej specyfikacji do definicji nowej kolumny:
CREATE TABLE Dogs(
DogId INTEGER PRIMARY KEY,
DogName
); A teraz chcemy dodać kolumnę o nazwie DOB . Możemy to zrobić za pomocą następującego kodu:
ALTER TABLE Dogs
ADD COLUMN Score NOT NULL DEFAULT 0; Sprawdź zmiany
Istnieje kilka sposobów sprawdzenia struktury tabeli w SQLite.
Jednym ze sposobów jest użycie PRAGMA table_info() oświadczenie.
PRAGMA table_info(Dogs); Wynik:
cid name type notnull dflt_value pk --- ------- ------- ---------- ---------- -- 0 DogId INTEGER 0 1 1 DogName 0 0 2 Score 1 0 0
Widzimy nową kolumnę i widzimy, że ma ona NOT NULL ograniczenie i że jego wartość domyślna to 0 .