Как изменить тип данных столбца таблицы более чем на 1 столбец?
Например:
ALTER TABLE webstore.Store MODIFY COLUMN (
ShortName VARCHAR(100),
UrlShort VARCHAR(100)
);
Однако вышеизложенное не работает. Я использую MySql 5.x
Ответы
Ответ 1
ALTER TABLE
может выполнять несколько изменений таблицы в одном выражении, но MODIFY COLUMN
может работать только по одному столбцу за раз, поэтому вы необходимо указать MODIFY COLUMN
для каждого столбца, который вы хотите изменить:
ALTER TABLE webstore.Store
MODIFY COLUMN ShortName VARCHAR(100),
MODIFY COLUMN UrlShort VARCHAR(100);
Также обратите внимание на это предупреждение из руководства:
Когда вы используете CHANGE или MODIFY, column_definition
должен включать тип данных и все атрибуты, которые должны применяться к новому столбцу, кроме атрибутов индекса, таких как PRIMARY KEY или UNIQUE. Атрибуты, присутствующие в исходном определении, но не указанные для нового определения, не переносятся вперед.
Ответ 2
Используйте следующий синтаксис:
ALTER TABLE your_table
MODIFY COLUMN column1 datatype,
MODIFY COLUMN column2 datatype,
... ... ... ... ...
... ... ... ... ...
Исходя из этого, ваша команда ALTER
должна быть:
ALTER TABLE webstore.Store
MODIFY COLUMN ShortName VARCHAR(100),
MODIFY COLUMN UrlShort VARCHAR(100)
Обратите внимание, что:
- В операторе
MODIFY
нет вторых скобок.
- Я использовал два отдельных оператора
MODIFY
для двух отдельных столбцов.
Это стандартный формат оператора MODIFY
для команды ALTER
для нескольких столбцов в таблице MySQL.
Взгляните на следующее: http://dev.mysql.com/doc/refman/5.1/en/alter-table.html и Изменить несколько столбцов в одном утверждение