CREATE OPERATOR CLASS(7) | SQL Commands | CREATE OPERATOR CLASS(7) |
CREATE OPERATOR CLASS - 定義一個新的操作符類
CREATE OPERATOR CLASS name [ DEFAULT ] FOR TYPE data_type USING index_method AS
{ OPERATOR strategy_number operator_name [ ( op_type, op_type ) ] [ RECHECK ]
| FUNCTION support_number funcname ( argument_type [, ...] )
| STORAGE storage_type
} [, ... ]
CREATE OPERATOR CLASS 定義一個新的操作符表。 一個操作符表定義一種特定的數據類型可以如何與一種索引一起使用。 操作符表聲明特定的操作符可以爲這種數據類型以及這種索引方法填充特定角色或者"策略"。 操作符表還聲明索引方法在爲一個索引字段選定該操作符表的時候要使用的支持過程。 所有操作符表使用的函數和操作符都必須在創建操作符表之前定義。
如果給出了模式名字,那麼操作符表就在指定的模式中創建。
否則就在當前模式中創建(在搜索路徑前面的那個;參閱
CURRENT_SCHEMA())。
在同一個模式中的兩個操作符表可以有同樣的名字,但它們必須用於不同的索引方法。
定義操作符表的用戶成爲其所有者。目前,創造者必須是超級用戶。
(作這樣的限制是因爲一個有問題的操作符表定義會讓服務器困惑,甚至崩潰。)
CREATE OPERATOR CLASS 目前並不檢查這個類定義是否包含所有索引方法需要操作符以及函數。 定義一個合法的操作符表是用戶的責任。
參考 ``Interfacing Extensions to Indexes''
獲取更多信息。
OPERATOR,FUNCTION,和 STORAGE 子句可以按照任意順序出現。
下面的例子命令爲數據類型 _int4(int4 的數組)定義了一個 GiST 索引操作符表。 參閱 contrib/intarray/ 獲取完整的例子。
CREATE OPERATOR CLASS gist__int_ops
DEFAULT FOR TYPE _int4 USING gist AS
OPERATOR 3 &&,
OPERATOR 6 = RECHECK,
OPERATOR 7 @,
OPERATOR 8 ~,
OPERATOR 20 @@ (_int4, query_int),
FUNCTION 1 g_int_consistent (internal, _int4, int4),
FUNCTION 2 g_int_union (bytea, internal),
FUNCTION 3 g_int_compress (internal),
FUNCTION 4 g_int_decompress (internal),
FUNCTION 5 g_int_penalty (internal, internal, internal),
FUNCTION 6 g_int_picksplit (internal, internal),
FUNCTION 7 g_int_same (_int4, _int4, internal);
CREATE OPERATOR CLASS 是一個 PostgreSQL 擴展。 在 SQL 標準中沒有 CREATE OPERATOR CLASS。
ALTER OPERATOR CLASS [alter_operator_class(7)], DROP OPERATOR CLASS [drop_operator_class(l)]
Postgresql 中文網站 何偉平 <laser@pgsqldb.org>
本頁面中文版由中文
man 手冊頁計劃提供。
中文 man
手冊頁計劃:https://github.com/man-pages-zh/manpages-zh
2003-11-02 | SQL - Language Statements |