Postgresql
ENUM 錯誤的排除約束:數據類型 dow 沒有訪問方法“gist”的預設運算符類
按照this 的風格,我正在嘗試在 ENUM 上創建排除約束,
CREATE TYPE dow AS ENUM ( 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday' ); CREATE TABLE available ( dow dow, tsrange tsrange, EXCLUDE USING gist (tsrange WITH =, dow WITH &&) );
退貨
ERROR: data type dow has no default operator class for access method "gist" HINT: You must specify an operator class for the index or define a default operator class for the data type.
這顯然是一個已知問題,它已在 PostgreSQL 10 中修復。
btree_gist
(10+)的新版本在 docs中,btree_gist 提供 GiST 索引操作符類,這些操作符類為 int2、int4、int8、float4、float8、數字、帶時區的時間戳、不帶時區的時間戳、帶時區的時間、不帶時區的時間、日期的數據類型實現 B 樹等效行為、interval、oid、money、char、varchar、text、bytea、bit、varbit、macaddr、macaddr8、inet、cidr、uuid和所有列舉類型。