Документация на MySQL

ALTER TABLE


СИНТАКСИС:

ALTER [IGNORE] TABLE table_name alter_specification [, alter_specification ...]

alter_specification: ADD [COLUMN] create_definition or CHANGE [COLUMN] old_column_name create_definition or ALTER [COLUMN] column_name { SET default | DROP DEFAULT } or DROP [COLUMN] column_name or DROP PRIMARY KEY or DROP INDEX key_name DROP FOREIGN KEY key_name

ОПИСАНИЕ:

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

Пока работает ALTER TABLE, старая таблица доступна для других клиентов. Обновления и запись в таблицу останавливаются и будут выполнены только после того, как новая таблица будет готова. Если IGNORE не определен, то копирование будет прервано и процесс отработан назад в случае наличия любых уникальных ключей, дублированных в новой таблице.

  • CHANGE column_name, DROP column_name и DROP INDEX являются MySQL расширениями ANSI SQL.
  • [COLUMN] факультативный параметр и может быть опущен.
  • Конструкция ALTER [COLUMN] может быть использована для изменения или удаления старого значения по умолчанию.
  • ADD и CHANGE используют один и тот же create_definition, что и CREATE TABLE. См. .
  • Если вы удаляете column_name, которое является частью составного ключа, то часть ключа будет удалена. Если все части ключа удалены, то будет удален весь ключ.
  • DROP PRIMARY KEY удаляет первый уникальный ключ в таблице.
  • CHANGE делает лучшее преобразование существующей информации в новый формат.
  • Синтаксис DROP FOREIGN KEY пока существует для запланированных функциональных возможностей. В настоящее время не делает ничего.

Вы можете использовать функцию C API mysql_info(&MYSQL_RESULT) чтобы узнать, сколько записей скопировано и сколько удалено из-за дублированных ключей.

Для использования команды ALTER TABLE вы должны иметь права доступа select, insert, delete, update, create и drop для этой таблицы.



Содержание раздела