2014-02-14 2 views
12

У меня есть таблица MySQL с столбцом VARCHAR (25), который я хочу преобразовать в INT. Все данные в столбце являются целыми или пробелами. Я попробовал эту команду:MySQL преобразовать тип столбца столбца из VARCHAR в INT

ALTER TABLE ip MODIFY isp INT UNSIGNED NOT NULL; 

К сожалению, так как некоторые из существующих строк пусты, я получаю эту ошибку:

ERROR 1366 (HY000): Incorrect integer value: '' for column 'isp' at row 2 

Спасибо за помощь.

+0

У вас есть существующие записи и значение по умолчанию, например 0. Он не может помещать пустой контент для номера, сказал коротко. – Rolice

ответ

11

Прежде чем изменять таблицу, попробуйте обновить свои значения.

Цель состоит в том, чтобы установить «0» значение в тех областях, где у вас есть пустые значения (которые не могут быть преобразованы в Int)

update ip 
set isp = '0' where trim(coalesce(isp, '')) = ''; 

Если провайдер не обнуляемый, вы можете удалить COALESCE функция.

update ip 
set isp = '0' where trim(isp) = ''; 
+0

Спасибо, этот ответ работал отлично. –

+2

@BrianG, поэтому не стесняйтесь его принять;) –

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