2015-07-28 2 views
0

Я пытаюсь изменить тип столбца в mysql. Я хочу изменить тип данных из десятичного числа (10,2) на float или double. Я прошел через различные посты на Stackoverflow и попытался следующий запросКак изменить десятичный (10,2) тип данных для float/double в mysql

ALTER TABLE tablename MODIFY columnname float; 

При запуске запроса, это не полный совет execution.Please.

+0

Сколько у вас данных в вашем столе? – Ishamael

+0

Какая ошибка вы получаете? – PaulF

+0

@ Ishamae l имеют 223 столбца и 10 ГБ данных. – user5113176

ответ

0

Alter table в MySQL, как известно, не очень быстро. На таблице 10 ГБ это может занять очень много времени, и ваша таблица не будет доступна все это время.

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

Одним из способов решения этой проблемы было бы создать новую таблицу с новой схемой, которую вы хотите, а затем в INSERT ... SELECT данные из старой таблицы в новую таблицу, затем отбросить старую таблицу и переименовать новую таблицу в старую таблицу , Таким образом, ваши данные будут доступны для чтения при изменении схемы. Он технически также доступен для записи, но эти записи будут естественно потеряны, когда вы уроните старую таблицу.

Невозможно сделать онлайн-модификацию (ALTER TABLE, которая позволяет читать и записывать в таблицу во время ее изменения) в MySQL.

Смежные вопросы