Это правильный синтаксис.
Резервное копирование
Вы должны сделать резервную копию базы данных независимо от того, насколько безопасна эта операция. Кажется, вы уже планируете это. Вряд ли у вас будут проблемы. Резервное копирование - это просто страховой полис на случай непредвиденных ситуаций.
Тестовый стол
Кажется, у вас ~ 200К записей. Я бы порекомендовал вам сделать копию этой таблицы, выполнив:
CREATE TABLE `test_nodes_hierarchy` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(100) DEFAULT NULL,
`parent_id` int(10) unsigned DEFAULT NULL,
`node_type_id` int(10) unsigned NOT NULL DEFAULT '1',
`node_order` int(10) unsigned DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `test_pid_m_nodeorder` (`parent_id`,`node_order`)
) ENGINE=MyISAM AUTO_INCREMENT=184284 DEFAULT CHARSET=utf8;
Заполнить тестовый стол
Заполните тестовую таблицу:
insert into test_nodes_hierarchy
select *
from nodes_hierarchy;
Запустить изменение состояния в этой тестовой таблице
Найдите, как долго оператор alter займет тестовую таблицу.
ALTER TABLE test_nodes_hierarchy
MODIFY name VARCHAR(150) DEFAULT NULL;
Переименовать таблицу испытаний
Практикуйтесь в переименовании тестовой таблицы, используя:
RENAME TABLE test_nodes_hierarchy TO test2_nodes_hierarchy;
Как только вы знаете, сколько времени занимает, вы знаете, чего ожидать на главном столе. Если что-то идет не так, как надо, вы можете заменить удаление таблицы node_hierarchy и просто переименовать таблицу test_nodes_hierarchy.
Это только укрепит доверие к операции.