2012-06-19 2 views
2

정규 표현식 패턴에 특정 postgres 열 유형이 있는지 궁금합니다. 즉, 패턴을 열에 저장 한 다음 입력 문자열 리터럴과 일치하는 패턴을 쿼리하려고합니다. TEXT 컬럼을 만드는 것보다 더 좋은 방법이 있습니까?일치하는 정규식을 포함하는 Postgresql 열

답변

5

아니요, 정규식을 저장할 특정 열 유형이 없습니다.

문자열 리터럴에서 각 정규 표현식을 실제로 실행해야 일치 여부를 확인할 수 있습니다.

편집 은 내가 VARCHAR 열은 공간을 절약 할 수 있다고 생각하지만, @의 muistooshort의 의견을 읽고 몇 가지 조사를하고 후에는 VARCHAR 컬럼은 PostgreSQL의 텍스트 컬럼을 통해 많은 이익을 보유하지 않는 것 같다. 나는이 재미 있고 약간 이상한 것을 안다.

+1

'varchar'는 실제로 PostgreSQL에서 시대 착오적입니다. 'varchar','char','text'는 PostgreSQL 내에서 거의 똑같습니다. 따라서 컬럼 크기를 제한하는 구체적인 이유가 없다면 항상'text'를 사용해야합니다. –

+0

@muistooshort 정말요? 할당 된 공간면에서 차이가 있습니까? – Strae

+4

@Strae - [docs] (http://www.postgresql.org/docs/9.1/static/datatype-character.html)와 같이 말하기 : _ 짧은 문자열 (최대 126 바이트)의 저장 요구 사항은 1 바이트입니다 문자의 경우에는 스페이스 패딩을 포함하는 실제 문자열을 더한 것입니다. 긴 문자열에는 1 대신 4 바이트의 오버 헤드가 있습니다. 긴 문자열은 시스템에 의해 자동으로 압축되므로 디스크의 물리적 요구 사항이 적을 수 있습니다. 매우 긴 값은 배경 테이블에도 저장되어 짧은 컬럼 값에 대한 빠른 액세스를 방해하지 않습니다 ._ – dezso

관련 문제