SQLite3, ALTER TABLE (Зміна таблиці)

ALTER TABLE [database-name.] table-name alteration

RENAME TO new-table-name

ADD [COLUMN] column-def

SQLite версія команди ALTER TABLE дозволяє користувачеві перейменувати або додати нові поля до існуючої таблиці. Неможливо видалити поле з таблиці.

Синтаксис RENAME TO використовується при перейменуванні таблиці з [database-name.]table-name на new-table-name. Ця команда не може застосовуватися для перенесення таблиць між базами даних лише перейменування в межах однієї бази.

Якщо перейменована таблиця має тригери чи індекси, всі вони залишаються пов'язані з таблицею і після перейменування. Однак, якщо є уявлення (view) або запити, що виконуються тригерами, посилаються на перейменовану таблицю, то вони автоматично не змінюються. Якщо необхідно тригери і подання, повинні бути видалені і повторно створені вручну.

Синтаксис ADD [COLUMN] використовується для додавання нового поля до існуючої таблиці. Новий стовпець завжди додається до кінця списку полів. Опис стовпця, що додається, повинен відповідати формату, дозволеному в CREATE TABLE, з наступними обмеженнями:

  • Стовпець не може мати обмежень PRIMARY KEY чи UNIQUE.
  • Стовпець не може мати значень за умовчанням CURRENT_TIME, CURRENT_DATE або CURRENT_TIMESTAMP.
  • Якщо обмежено NOT NULL, стовпець повинен мати значення за замовчуванням, відмінне від NULL.

Час виконання команди ALTER TABLE не залежить від кількості даних у таблиці. ALTER TABLE працює також швидко на таблиці з 10 мільйонами записів, як і таблиці з 1 записом.