Вы не можете просто удалить старые значения Enum из определения Column. В противном случае произойдет непоправимая потеря данных (все поля могут стать пустыми). Это будет многоэтапный процесс:
Добавление новых значений Enum в определение существующего столбца. Кроме того, значения Enum заключаются в одинарные кавычки (а не обратные пометки)
ALTER TABLE `stocktakings` MODIFY `stocktakings`.`status` ENUM(
'Pending',
'Processing',
'Failed',
'Succeeded',
'ready_for_relocation',
'search_shelf_location',
'stock_update_succeeded',
'stock_update_failed',
'updating_stock'
);
Теперь выполните запрос Update
, чтобы обновить все значения перечисления соответственно:
UPDATE `stocktakings`
SET status = CASE status
WHEN 'Pending' THEN 'ready_for_relocation'
WHEN 'Processing' THEN 'search_shelf_location'
WHEN 'Failed' THEN 'stock_update_failed'
WHEN 'Succeeded' THEN 'stock_update_succeeded'
END
Теперь Alter Table
и удалите старые значения перечисления.
ALTER TABLE `stocktakings` MODIFY `stocktakings`.`status` ENUM(
'ready_for_relocation',
'search_shelf_location',
'stock_update_succeeded',
'stock_update_failed',
'updating_stock'
);