Учебники

SQLite — команда ALTER TABLE

Команда SQLite ALTER TABLE изменяет существующую таблицу, не выполняя полный дамп и перезагрузку данных. Вы можете переименовать таблицу, используя инструкцию ALTER TABLE, а дополнительные столбцы можно добавить в существующую таблицу, используя инструкцию ALTER TABLE.

В SQLite не поддерживается никакая другая операция, поддерживаемая командой ALTER TABLE, кроме переименования таблицы и добавления столбца в существующую таблицу.

Синтаксис

Ниже приведен основной синтаксис команды ALTER TABLE для переименования существующей таблицы.

ALTER TABLE database_name.table_name RENAME TO new_table_name;

Ниже приведен основной синтаксис ALTER TABLE для добавления нового столбца в существующую таблицу.

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

пример

Рассмотрим таблицу COMPANY со следующими записями:

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

Теперь давайте попробуем переименовать эту таблицу с помощью инструкции ALTER TABLE следующим образом:

sqlite> ALTER TABLE COMPANY RENAME TO OLD_COMPANY;

Приведенный выше оператор SQLite переименует таблицу COMPANY в OLD_COMPANY. Теперь давайте попробуем добавить новый столбец в таблицу OLD_COMPANY следующим образом:

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

Таблица COMPANY теперь изменена, и следующая будет выводом из инструкции 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

Следует отметить, что вновь добавленный столбец заполнен значениями NULL.