PostgreSQL 9.3 베타 2 (?)에서 JSON 필드에 인덱스를 생성하려면 어떻게해야합니까? 사용 된 ->
연산자를 사용 하여 시도했지만 hstore
다음 오류가 발생했습니다.
CREATE TABLE publishers(id INT, info JSON);
CREATE INDEX ON publishers((info->'name'));
오류 : json 데이터 유형에 액세스 방법 “btree”에 대한 기본 연산자 클래스가 없습니다. 힌트 : 인덱스에 대한 연산자 클래스를 지정하거나 데이터 유형에 대한 기본 연산자 클래스를 정의해야합니다.
답변
녹이다:
CREATE TABLE publishers(id INT, info JSON);
CREATE INDEX ON publishers((info->>'name'));
주석에서 언급했듯이 여기에 미묘한 차이점 ->>
은 ->
. 전자는 값을 텍스트로, 후자는 JSON 객체로 반환합니다.