Миграция Varchar в текст в Mysql

Я конвертирую один из столбцов "Varchar" в таблице MySQL в текстовое поле. Я просто использую одну команду alter для преобразования типа. Когда я прочитал о тексте, varchar узнал, что у него есть разница в механизмах хранения.

Я должен написать какой-либо сценарий миграции, чтобы изменить тип столбца и переместить данные, или достаточно одной команды изменения типа?

2 ответа

ALTER TABLE table_name MODIFY column_name TEXT NOT NULL;

Там нет большой проблемы, чтобы изменить varchar в text так как text поддерживает большую длину данных, чем varchar, но если поле имеет индекс, его необходимо удалить и создать новый индекс с префиксом col_name(length) (см. CREATE INDEX синтаксис).

В соответствии с вашими данными, возможно, было бы неплохо использовать fulltext индексы, но это подразумевает изменение поисковых выражений в этом поле.

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

Другие вопросы по тегам