Команда 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.