현재 사용중인 varchar로 된 필드를 decimal로 변경하려고 합니다.
그런데... 문제는 모두 정수로 되어 있습니다.
할인율필드라서 근데 실수가 하나있습니다.
다른건 모두 5, 7, 이런식으로 입력되어있는데, 한개가 6.5인데(물론 수정은 안됩니다. 사용중이라서)
이걸 그냥 decimal필드로 변경하여도 상관없는지요???
훔...테스트해보니 varchar에서 decimal변경이 안되던데 ㅡㅡa
방법이 없나요??
변경되는데요...
ALTER TABLE 테이블명 CHANGE 변경될필드명 변경할필드명 DECIMAL( 2, 1 ) UNSIGNED DEFAULT '0.0' NOT NULL
이렇게 하시면 되겠네요.
할인율이 최고가 얼마인가요?
저렇게 하면 99.9%까지 가능하구요
100% 적용하시려면
DECIMAL(3,1)로 하셔야겠군여...
6.5 있어도 정상적으로 변경됩니다.
이형문님이 잘 설명해 주었기 때문에 약간만 부언합니다.
----
캐릭터 타입 <-> 숫자 타입시에는 철저한 테스트를 거치시기 바랍니다. 내부적으로 변환시키는 경우가 많습니다.
저는 캐릭터 타입 <-> 숫자 타입 변환시에는
1. alter table.. add column으로 임시 칼럼(반대타입) 생성
2. update문을 사용하여 원칼럼과 임시칼럼을 같게 만들기
3. 원칼럼 drop 및 임시칼럼 rename
의 방법을 사용합니다.
조금 무식하기는 하지만.. 효과는 좋습니다. ^^