SQLite - polecenie ALTER TABLE

SQLite ALTER TABLEpolecenie modyfikuje istniejącą tabelę bez wykonywania pełnego zrzutu i ponownego ładowania danych. Możesz zmienić nazwę tabeli za pomocą instrukcji ALTER TABLE, a dodatkowe kolumny można dodać do istniejącej tabeli za pomocą instrukcji ALTER TABLE.

Nie ma innej operacji obsługiwanej przez polecenie ALTER TABLE w SQLite poza zmianą nazwy tabeli i dodaniem kolumny w istniejącej tabeli.

Składnia

Poniżej znajduje się podstawowa składnia ALTER TABLE zmienić NAZWĘ istniejącej tabeli.

ALTER TABLE database_name.table_name RENAME TO new_table_name;

Poniżej znajduje się podstawowa składnia ALTER TABLE aby dodać nową kolumnę w istniejącej tabeli.

ALTER TABLE database_name.table_name ADD COLUMN column_def...;

Przykład

Rozważ tabelę COMPANY z następującymi rekordami -

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

Teraz spróbujmy zmienić nazwę tej tabeli za pomocą instrukcji ALTER TABLE w następujący sposób -

sqlite> ALTER TABLE COMPANY RENAME TO OLD_COMPANY;

Powyższa instrukcja SQLite zmieni nazwę tabeli COMPANY na OLD_COMPANY. Teraz spróbujmy dodać nową kolumnę w tabeli OLD_COMPANY w następujący sposób -

sqlite> ALTER TABLE OLD_COMPANY ADD COLUMN SEX char(1);

Tabela COMPANY została zmieniona, a po niej będzie wynik instrukcji SELECT.

ID          NAME        AGE         ADDRESS     SALARY      SEX
----------  ----------  ----------  ----------  ----------  ---
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

Należy zauważyć, że nowo dodana kolumna jest wypełniona wartościami NULL.