만약 text 타입의 a라는 컬럼을 smallint로 타입을 변경한다고 할 때 아래와 같은 에러가 납니다.

alter table test alter column a type smallint;
 
-- 에러 발생
You might need to specify "USING a::smallint


텍스트 또는 varchar에서 정수로의 자동 변환을 지원하지 않습니다. (즉, 정수로 예상하는 함수에 varchar를 전달하거나 varchar 필드를 정수로 할당 할 수 없습니다.) 따라서 ALTER TABLE ...을 사용하여 형변환에 대해 명시적으로 지정해야합니다.

alter table test alter column a type smallint using a::smallint;


+ Random Posts