ALTER OPERATOR FAMILY — 연산자 계열의 정의 변경
ALTER OPERATOR 제품군이름사용 중index_method추가 토토 커뮤니티전략_번호operator_name(op_type,op_type) [ 검색용 | 주문:sort_family_name] | 기능지원_번호[ (op_type[ ,op_type] ) ]함수_이름[ (argument_type[, ...] ) ] [, ... ] ALTER 토토 커뮤니티 제품군이름사용 중index_method드롭 토토 커뮤니티전략_번호(op_type[ ,op_type] ) | 기능지원_번호(op_type[ ,op_type] ) [, ... ] ALTER 토토 커뮤니티 제품군이름사용 중index_method이름을 다음으로 변경:new_nameALTER OPERATOR 제품군이름사용 중index_method소유자:new_owner| CURRENT_USER | SESSION_USER ALTER 토토 커뮤니티 제품군이름사용 중index_method스키마 설정new_schema
ALTER OPERATOR 제품군연산자 계열의 정의를 변경합니다. 제품군에 토토 커뮤니티 및 지원 기능을 추가하거나, 제품군에서 제거하거나, 제품군의 이름이나 소유자를 변경할 수 있습니다.
연산자와 지원 기능이 다음과 같은 계열에 추가될 때ALTER OPERATOR 제품군, 이들은 계열 내 특정 연산자 클래스의 일부가 아니지만 단지“느슨한”가족 내에서. 이는 이러한 연산자와 기능이 계열의 의미 체계와 호환되지만 특정 인덱스의 올바른 기능에 필요하지 않음을 나타냅니다. (그렇게 필요한 연산자와 함수는 대신 연산자 클래스의 일부로 선언되어야 합니다. 참조연산자 클래스 생성.) 포스트그레SQL가족의 느슨한 구성원을 언제든지 가족에서 삭제할 수 있지만, 연산자 클래스의 구성원은 전체 클래스와 그에 종속된 모든 색인을 삭제하지 않고는 삭제할 수 없습니다. 일반적으로 단일 데이터 유형 연산자 및 함수는 특정 데이터 유형에 대한 인덱스를 지원하는 데 필요하기 때문에 연산자 클래스의 일부인 반면, 교차 데이터 유형 연산자 및 함수는 계열의 느슨한 구성원으로 만들어집니다.
이용하려면 슈퍼유저여야 합니다.ALTER OPERATOR 제품군. (잘못된 연산자 계열 정의로 인해 서버가 혼란스럽거나 충돌할 수도 있기 때문에 이러한 제한이 적용됩니다.)
ALTER OPERATOR 제품군현재 연산자 계열 정의에 인덱스 메소드에 필요한 모든 연산자 및 함수가 포함되어 있는지 여부나 연산자 및 함수가 자체 일관성 세트를 형성하는지 여부를 확인하지 않습니다. 유효한 연산자 계열을 정의하는 것은 사용자의 책임입니다.
이름기존 연산자 계열의 이름(선택적으로 스키마 한정).
index_method이 연산자 계열의 색인 메소드 이름입니다.
전략_번호연산자 계열과 관련된 연산자에 대한 인덱스 방법의 전략 번호입니다.
operator_name연산자 계열과 연관된 연산자의 이름(선택적으로 스키마 한정).
op_type안에토토 커뮤니티절, 연산자의 피연산자 데이터 유형, 또는없음왼쪽 단항 또는 오른쪽 단항 연산자를 나타냅니다. 비교 가능한 구문과 달리연산자 클래스 생성, 피연산자 데이터 유형은 항상 지정되어야 합니다.
안에기능 추가절, 함수의 입력 데이터 유형과 다른 경우 함수가 지원하려는 피연산자 데이터 유형입니다. B-트리 비교 함수 및 해시 함수의 경우 지정할 필요가 없습니다.op_type함수의 입력 데이터 유형은 항상 사용하기에 올바른 유형이기 때문입니다. B-트리 정렬 지원 함수, B-트리 동일 이미지 함수 및 GiST, SP-GiST 및 GIN 연산자 클래스의 모든 함수의 경우 함수와 함께 사용할 피연산자 데이터 유형을 지정해야 합니다.
에드롭 기능절, 함수가 지원하려는 피연산자 데이터 유형을 지정해야 합니다.
sort_family_name기존 이름(선택적으로 스키마 한정)브트리순서 연산자와 연관된 정렬 순서를 설명하는 연산자 계열.
둘 다 아니라면검색용아니요주문용지정되었습니다.검색용기본값입니다.
support_number연산자 계열과 관련된 함수에 대한 인덱스 메소드의 지원 함수 번호입니다.
함수_이름연산자 계열에 대한 인덱스 메소드 지원 함수인 함수의 이름(선택적으로 스키마 한정). 인수 목록이 지정되지 않은 경우 이름은 해당 스키마에서 고유해야 합니다.
argument_type함수의 매개변수 데이터 유형.
new_name토토 커뮤니티 계열의 새 이름입니다.
new_owner토토 커뮤니티 가족의 새로운 소유자.
new_schema연산자 계열의 새로운 스키마.
그토토 커뮤니티그리고기능절은 어떤 순서로든 나타날 수 있습니다.
다음에 주목하세요.드롭구문은 다음만을 지정합니다“슬롯”연산자 계열에서 전략 또는 지원 번호 및 입력 데이터 유형별. 슬롯을 차지하는 연산자나 함수의 이름은 언급되지 않습니다. 또한,드롭 기능지정할 유형은 함수가 지원하려는 입력 데이터 유형입니다. GiST, SP-GiST 및 GIN 인덱스의 경우 이는 함수의 실제 입력 인수 유형과 아무 관련이 없을 수 있습니다.
인덱스 기계는 함수를 사용하기 전에 함수에 대한 액세스 권한을 확인하지 않기 때문에 연산자 계열에 함수나 연산자를 포함시키는 것은 공개 실행 권한을 부여하는 것과 같습니다. 이는 일반적으로 연산자 계열에서 유용한 함수 종류에 대해서는 문제가 되지 않습니다.
연산자는 SQL 함수에 의해 정의되어서는 안 됩니다. SQL 함수는 호출 쿼리에 인라인될 가능성이 높으며, 이로 인해 최적화 프로그램이 쿼리가 인덱스와 일치하는지 인식하지 못하게 됩니다.
이전PostgreSQL8.4, 그토토 커뮤니티절에는 다음이 포함될 수 있습니다.다시 확인옵션. 인덱스 연산자가 다음과 같으므로 더 이상 지원되지 않습니다.“손실”이제 런타임에 즉시 결정됩니다. 이를 통해 연산자가 손실이 있을 수도 있고 없을 수도 있는 경우를 효율적으로 처리할 수 있습니다.
다음 예제 명령은 데이터 유형에 대한 B-트리 연산자 클래스가 이미 포함된 연산자 계열에 교차 데이터 유형 연산자 및 지원 기능을 추가합니다.int4그리고int2.
btree ADD를 사용하는 ALTER OPERATOR FAMILY 정수_ops -- int4 대 int2 연산자 1 < (int4, int2) , 연산자 2 <= (int4, int2) , 연산자 3 = (int4, int2) , 연산자 4 = (int4, int2) , 연산자 5 (int4, int2) , 기능 1 btint42cmp(int4, int2) , -- int2 대 int4 연산자 1 < (int2, int4) , 연산자 2 <= (int2, int4) , 연산자 3 = (int2, int4) , 연산자 4 = (int2, int4) , 연산자 5 (int2, int4) , 함수 1 btint24cmp(int2, int4) ;
이 항목을 다시 제거하려면:
btree DROP을 사용하는 ALTER OPERATOR FAMILY 정수_ops -- int4 대 int2 연산자 1 (int4, int2) , 연산자 2 (int4, int2) , 연산자 3 (int4, int2) , 연산자 4 (int4, int2) , 연산자 5 (int4, int2) , 함수 1 (int4, int2) , -- int2 대 int4 연산자 1 (int2, int4) , 연산자 2 (int2, int4) , 연산자 3 (int2, int4) , 연산자 4 (int2, int4) , 연산자 5 (int2, int4) , 함수 1(int2, int4) ;
없습니다ALTER OPERATOR 제품군SQL 표준의 문입니다.
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.