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. См. 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 для этой таблицы.