2010-12-17 3 views
10

이전 데이터베이스에서 수동으로 열 길이를 변경했습니다.PostgreSQL에서 데이터베이스를 통해 열 크기 및 유형을 얻는 방법

그러나 HQL을 통해 새 데이터베이스를 만든 후에는 varchar(255)이 생성되므로 더 오래 사용해야합니다.

어떤 테이블 열을 변경해야합니까?

수동으로 찾을 수 있지만 지금은 약 200 개의 테이블이 있고이 작업을 수행하는 쿼리가 필요합니다.

SQL 쿼리를 사용하여 Postgres에서 열 유형과 길이를 얻으려면 어떻게해야합니까?

+3

PostgreSQL에서 "varchar"(길이 없음) 또는 "text"(길이 제외)를 사용하여 텍스트 길이를 처리 할 수있는 텍스트 필드를 만들 수 있습니다. 우아함과 효율성을 가진 길이의 문자열을 처리하기 때문에 PostgreSQL에서 고정 너비 텍스트 필드가 필요하지는 않습니다. –

+1

네, 맞습니다. 데이터의 크기는 어떻습니까? 성능에는 차이가 없습니다. –

답변

24

INFORMATION_SCHEMA 표는 여기에 당신을 도울 것입니다 :

select * 
from INFORMATION_SCHEMA.COLUMNS 

당신은 결과 집합의 table_name, column_name, data_typecharacter_maximum_length 열을 검사 할 수 있습니다.

1

이 오래된 게시물을 우연히 발견했습니다. 당신은이 쿼리를 실행하여 필요한 모든 명령을 생성 할 수 있습니다

ALTER TABLE X ALTER COLUMN Y TYPE text; 

:

select table_name, 
     column_name 
from INFORMATION_SCHEMA.COLUMNS 
where data_type = 'character varying' 
    and character_maximum_length = 200 

이의 테이블 변경 구문과 함께 퍼팅 : RedFilter의 답변에 따라 여기에 원래의 질문에 대한 쿼리는 다음과 같습니다

select 'ALTER TABLE ' || table_name || ' ALTER COLUMN ' || column_name || ' TYPE text;' 
from INFORMATION_SCHEMA.COLUMNS 
where data_type = 'character varying' 
    and character_maximum_length = 200; 

앞으로 도움이 될 것입니다. 아니면 적어도 시간을 절약 할 수 있기를 바랍니다.

관련 문제