Postgre에서 열 데이터 유형을 문자에서 숫자로 변경하는 방법SQL 8.4
다음 쿼리를 사용하고 있습니다.
ALTER TABLE presales ALTER COLUMN code TYPE numeric(10,0);
열의 데이터 유형을 변경하는 방법character(20)로.numeric(10,0)하지만 오류가 발생했습니다.
열 "코드"를 숫자 형식으로 캐스팅할 수 없습니다.
다음을 사용할 수 있습니다.
선택 사항
USING절은 새 열 값을 이전 열에서 계산하는 방법을 지정합니다. 생략할 경우 기본 변환은 이전 데이터 유형에서 새 열로 캐스팅된 할당과 동일합니다.aUSING이전 형식에서 새 형식으로 캐스팅된 암시적 또는 할당이 없는 경우 절을 제공해야 합니다.
따라서 데이터에 따라 다음과 같은 작업이 가능합니다.
alter table presales alter column code type numeric(10,0) using code::numeric;
-- Or if you prefer standard casting...
alter table presales alter column code type numeric(10,0) using cast(code as numeric);
이 작업은 다음 작업에 포함된 항목이 있는 경우 실패합니다.code숫자로 캐스팅할 수 없습니다. 사용에 실패할 경우 열 유형을 변경하기 전에 숫자가 아닌 데이터를 직접 정리해야 합니다.
만약 당신이VARCHAR열에 빈 문자열이 있습니다(와 동일하지 않음).NULLPostgre용SQL(기억나는 대로 SQL)을 사용하여 기본값을 설정해야 합니다.
ALTER TABLE presales ALTER COLUMN code TYPE NUMERIC(10,0)
USING COALESCE(NULLIF(code, '')::NUMERIC, 0);
1단계: 요구 사항에 따라 정수 또는 숫자로 새 열 추가
2단계: 막대형 열에서 숫자 열로 데이터 채우기
3단계: 바르샤바 열
4단계: 이전 막대 열에 따라 새 숫자 열 이름 변경
언급URL : https://stackoverflow.com/questions/7683359/how-to-change-column-datatype-from-character-to-numeric-in-postgresql-8-4
'programing' 카테고리의 다른 글
| jQuery에서 가장 빠른 어린이() 또는 찾기()는 무엇입니까? (0) | 2023.05.09 |
|---|---|
| 어떤 Git 분기 모델이 귀사에 적합합니까? (0) | 2023.05.09 |
| 에서 개체의 전체 복사본을 수행하는 방법은 무엇입니까?NET? (0) | 2023.05.04 |
| Promise 또는 Observable을 반환해야 하는 검증자 (0) | 2023.05.04 |
| ng build' 후 angular-cli에서 dist-folder 경로를 변경하는 방법 (0) | 2023.05.04 |