이 모듈은를 구현합니다.토토 꽁 머니
단일 내에 키/값 쌍의 세트를 저장하기위한 데이터 유형PostgreSQL값. 이것은 거의 검사되지 않는 많은 속성이있는 행 또는 반 구조화 된 데이터와 같은 다양한 시나리오에서 유용 할 수 있습니다.
이 모듈이 고려됩니다“신뢰할 수있는”Create
현재 데이터베이스의 권한.
토토 꽁 머니
외부 표현#AN의 텍스트 표현토토 꽁 머니
10920_10970키
=>
value
쉼표로 분리 된 쌍. 몇 가지 예 :
k => v
쌍의 순서는 중요하지 않으며 (출력시 재현되지 않을 수 있음). 쌍 사이 또는 주변 사이의 공백=>
표시가 무시됩니다. whitespace, commas,를 포함하는 이중 쿼트 키 및 값=
s 또는s. 키 또는 값에 이중 견적 또는 백 슬래시를 포함하려면 백 슬래시로 탈출하십시오.
an의 각 키토토 꽁 머니
고유합니다. 당신이 선언한다면토토 꽁 머니
중복 키가 있으면 하나만 저장됩니다.토토 꽁 머니
선택 'a => 1, a => 2':: 토토 꽁 머니;
값 (키가 아님)은 SQL 일 수 있습니다null
. 예를 들어:
key => null
thenull
키워드는 사례에 민감합니다. 두 배의 ~null
그것을 일반 문자열로 취급하려면“null”.
토토 꽁 머니
텍스트 형식은 입력에 사용될 때 적용전필요한 인용 또는 탈출. 당신이 통과하는 경우토토 꽁 머니
매개 변수를 통한 리터럴이면 추가 처리가 필요하지 않습니다. 그러나 인용 된 문자 그대로 상수로 전달하는 경우 단일 쿼트 문자 및 (에 따라Standard_Conforming_strings
구성 매개 변수) 백 슬래시 문자를 올바르게 탈출해야합니다. 보다섹션 4.1.2.1문자열 상수 처리에 대한 자세한 내용.
출력에 따라 이중 인용문은 항상 키와 값을 둘러싸고 있습니다.
토토 꽁 머니
운영자 및 기능#12427_12ZZZ |토토 꽁 머니
모듈에 표시테이블 F.6,의 함수표 F.7.
표 F.6. 토토 꽁 머니
운영자
운영자 설명 예제 |
---|
주어진 키와 관련된 값을 반환합니다.
|
주어진 키와 관련된 값을 반환하거나
|
두 가지를 연결합니다
|
do
|
do
|
do
|
왼쪽 피연산자가 오른쪽에 포함되어 있습니까?
|
왼쪽 피연산자가 오른쪽에 포함되어 있습니까?
|
왼쪽 피연산자에서 키를 삭제합니다.
|
왼쪽 피연산자에서 키를 삭제합니다.
|
오른쪽 피연산자의 쌍을 일치시키는 왼쪽 피연산자에서 쌍이 삭제됩니다.
|
왼쪽 피연산자의 필드 (복합 유형이어야 함)의 필드를 값과 일치하는 값으로 대체
|
변환
|
변환
|
표 F.7. 토토 꽁 머니
기능
이러한 연산자 및 기능 외에도토토 꽁 머니
유형을 위시 할 수 있으므로 연관 배열처럼 작동 할 수 있습니다. 유형의 단일 첨자텍스트
지정할 수 있습니다. 키로 해석되며 해당 값이 가져 오거나 저장됩니다.
테이블 생성 mytable (h 토토 꽁 머니);
구독 페치 반환null
첨자가있는 경우null
또는 해당 키가 존재하지 않습니다토토 꽁 머니
. (따라서 구독 된 페치는와 크게 다르지 않습니다.->
운영자.) 첨자가있는 경우 첨자 업데이트가 실패합니다null
; 그렇지 않으면 해당 키의 값을 대체하여에 항목을 추가합니다.토토 꽁 머니
키가 아직 존재하지 않는 경우.
토토 꽁 머니
에 대한 요지 및 진 지수 지원이 있습니다@>
, ?
, ? &
및? |
연산자. 예를 들어:
GIST (H)를 사용하여 Test토토 꽁 머니에서 인덱스 HIDX 생성;
gist_토토 꽁 머니_ops
gist opclass는 비트 맵 서명으로 키/값 쌍 세트를 근사합니다. 선택적 정수 매개 변수Siglen
시그니처 길이를 바이트로 결정합니다. 기본 길이는 16 바이트입니다.
서명 길이 32 바이트를 가진 인덱스 생성 예 :
GIST를 사용하여 test토토 꽁 머니에서 인덱스 HIDX 생성 (h GIST_HSTORE_OPS (siglen = 32));
토토 꽁 머니
또한 지원btree
34454_34ZZZ |HASH
=
운영자. 이것은 허용토토 꽁 머니
선언 될 열고유 한
또는 사용될그룹 by
, 주문 by
34454_34ZZZ |별도의
표현. 정렬 주문토토 꽁 머니
값은 특별히 유용하지 않지만 이러한 인덱스는 동등한 조회에 유용 할 수 있습니다. 인덱스 작성=
다음과 같이 비교 :
btree (h)를 사용하여 test토토 꽁 머니에서 인덱스 HIDX 생성;
키를 추가하거나 새로운 값으로 기존 키를 업데이트하십시오.
업데이트 탭 세트 H [ 'C'] = '3';
같은 일을하는 또 다른 방법은 다음과 같습니다.
업데이트 탭 세트 H = H || 토토 꽁 머니 ( 'c', '3');
한 번의 작업에서 여러 키를 추가하거나 변경하려면 연결 접근 방식이 첨자보다 효율적입니다.
업데이트 탭 세트 h = h || 토토 꽁 머니 (배열 [ 'q', 'w'], 배열 ['11 ','12 '];
키 삭제 :
업데이트 탭 세트 H = 삭제 (h, 'k1');
변환레코드
to an토토 꽁 머니
:
테이블 테스트 생성 (Col1 Integer, Col2 Text, Col3 Text);
변환토토 꽁 머니
사전 정의 된레코드
유형 :
테이블 테스트 생성 (Col1 Integer, Col2 Text, Col3 Text);
AN을 사용하여 기존 레코드를 수정합니다토토 꽁 머니
:
테이블 테스트 생성 (Col1 Integer, Col2 Text, Col3 Text);
the토토 꽁 머니
유형은 본질적 자유로 인해 다양한 키를 포함 할 수 있습니다. 유효한 키를 확인하는 것은 응용 프로그램의 작업입니다.
간단한 예 :
선택 * 각각에서 ( 'aaa => bq, b => null, ""=> 1');
테이블 사용 :
테이블 스탯을 선택하여 (각각 (h)). 키, (각 (h)). thest토토 꽁 머니의 값;
온라인 통계 :
Key, Count (*)를 선택하십시오
PostgreSQL 9.0,.토토 꽁 머니
이전 버전과 다른 내부 표현을 사용합니다. 이것은 텍스트 표현 (덤프에서 사용)이 변하지 않기 때문에 덤프/복원 업그레이드에 대한 장애물을 제시하지 않습니다.
이진 업그레이드의 경우 새 코드가 구식 데이터를 인식하도록하여 상향 호환성을 유지합니다. 이는 새 코드로 아직 수정되지 않은 데이터를 처리 할 때 약간의 성능 페널티가 수반됩니다.업데이트
다음과 같은 문장 :
업데이트 태블니 이름 세트 토토 꽁 머니col = 토토 꽁 머니col || '';
그렇게하는 또 다른 방법은 다음과 같습니다.
토토 꽁 머니col을 사용하여 Alter Table Tablename Alter Hstorecol Type Hstore || '';
theAlter Table
메소드가 필요합니다액세스 독점
테이블에 잠그지 만 오래된 행 버전으로 테이블을 팽창 시키지는 않습니다.
|토토 꽁 머니
언어 pl/perl 및 pl/python을 입력하십시오. PL/Perl의 확장자를라고합니다.토토 꽁 머니_plperl
및토토 꽁 머니_plperlu
, 신뢰할 수 있고 신뢰할 수없는 pl/perl. 이 변환을 설치하고 함수를 만들 때 지정하면토토 꽁 머니
값은 Perl 해시에 매핑됩니다. PL/Python의 확장을라고합니다.토토 꽁 머니_PLPYTHON3U
. 사용하면토토 꽁 머니
값은 Python 사전에 매핑됩니다.
변환 확장자를 동일한 스키마에 설치하는 것이 좋습니다토토 꽁 머니
. 그렇지 않으면 Transform Extension의 스키마에 적대적인 사용자가 정의한 개체가 포함 된 경우 설치 시간 보안 위험이 있습니다.
Oleg Bartunov<oleg@sai.msu.su
, 러시아 모스크바 대학교 모스크바
Teodor Sigaev<reodor@sigaev.ru
, Moscow, Delta-Soft Ltd., 러시아
Andrew Gierth의 추가 향상<andrew@tao11.riddles.org.uk
, 영국
46539_46733이 양식문서 문제를보고하려면