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

Dodaj kolumnę do istniejącej tabeli w SQLite

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 KEY lub UNIQUE ograniczenie.
  • Nowa kolumna nie może mieć wartości domyślnej CURRENT_TIME , CURRENT_DATE , CURRENT_TIMESTAMP lub wyrażenie w nawiasach.
  • Jeśli NOT NULL określono ograniczenie, kolumna musi mieć wartość domyślną inną niż NULL .
  • Jeśli włączone są ograniczenia klucza obcego i kolumna z REFERENCES została dodana klauzula, kolumna musi mieć wartość domyślną NULL .
  • Jeśli nowa kolumna jest kolumną generowaną, nie może być STORED kolumna. Może to być VIRTUAL jednak 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 .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pokój Android + funkcje okna

  2. Czy możliwa jest baza danych Android SQLite z bazą danych w określonej lokalizacji?

  3. Sformatuj wyniki SQLite jako JSON

  4. Jak działa funkcja Time() w SQLite

  5. execSQL() z UPDATE nie aktualizuje się