2014-02-14 4 views
12

INT로 변환하려는 VARCHAR (25) 열이있는 MySQL 테이블이 있습니다. C 럼의 모든 데이터는 정수 또는 공 i입니다. 나는이 명령을 시도 :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

테이블을 변경하기 전에 값을 업데이트하십시오.

목표는 ISP가 널 (NULL) 아니었다면, 당신은 유착을 제거 할 수 있습니다 (int로 변환 할 수 없습니다) 빈 값

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

이 분야에서 '0'값을 설정하는 것입니다 기능.

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

감사합니다.이 답변은 완벽하게 작동했습니다. –

+2

@BrianG는이를 받아들이는 것을 주저하지 않습니다;) –

관련 문제