ALTER TABLE
Оператор ALTER TABLE обеспечивает возможность изменять структуру существующей таблицы. Например, можно добавлять или удалять столбцы, создавать или уничтожать индексы или переименовывать столбцы либо саму таблицу. Можно также изменять комментарий для таблицы и ее тип.
Оператор ALTER TABLE во время работы создает временную копию исходной таблицы. Требуемое изменение выполняется на копии, затем исходная таблица удаляется, а новая переименовывается.
Например, чтобы переименовать столбец INTEGER из a в b, можно сделать следующее:
Если переименованный столбец был индексируемым - индекс тоже перестроится под новое имя.
При изменении типа столбца, но не его имени синтаксис выражения CHANGE все равно требует указания обоих имен столбца, даже если они одинаковы. Например:
Однако начиная с версии MySQL 3.22.16a можно также использовать выражение MODIFY для изменения типа столбца без переименовывания его:
Примеры
Ниже приводятся примеры, показывающие некоторые случаи употребления команды ALTER TABLE. Пример начинается с таблицы t1, которая создается следующим образом:
Для того чтобы переименовать таблицу из t1 в t2:
Для того чтобы удалить столбец c:
Для того чтобы добавить новый числовой столбец AUTO_INCREMENT с именем col:
Заметьте, что столбец col
индексируется (ADD INDEX
), так как столбцы AUTO_INCREMENT должны быть индексированы, и, кроме того, не могут быть NULL. Подробнее про NULL
Для того чтобы изменить тип столбца ccс INTEGER на TINYINT NOT NULL (оставляя имя прежним) и изменить тип столбца bbb сccc CHAR(10) на CHAR(20) с переименованием его с bbb на ccc:
Для того чтобы добавить новый столбец TIMESTAMP с именем ddd в конец таблицы:
Вставить новый столбец email после указанного столбца name:
Вставить новый столбец в начало таблицы:
Для того чтобы добавить индекс к столбцу ddd и сделать столбец aaa первичным ключом:
создать индексы к таблице
удалить индекс
подробиці: https://dev.mysql.com/doc/refman/8.0/en/drop-index.html
Щоб видалити первинний ключ (а він завжди має ім'я PRIMARY
) - вкажіть його ім'я у лапках, оскільки PRIMARY
- це зарезервоване слово:
Last updated