我有一個帶有HSTORE列「ext」的表,其中值爲int4range。舉個例子:如何在PostgreSQL中爲具有int4range值的hstore類型創建運算符
"p1"=>"[10, 18]", "p2"=>"[24, 32]", "p3"=>"[29, 32]", "p4"=>"[18, 19]"
然而,當我嘗試創建這個表達式指數,我得到一個錯誤:
CREATE INDEX ix_test3_p1
ON test3
USING gist
(((ext -> 'p1'::text)::int4range));
ERROR: data type text has no default operator class for access method "gist" SQL state: 42704 Hint: You must specify an operator class for the index or define a default operator class for the data type.
如何創建此操作?
注意
每個記錄可能有自己獨特的一套鑰匙。每個鍵表示一個屬性,值表示值的範圍。所以不是所有的記錄都會有「p1」。在hstore中考慮這個EAV模型。
我得到了「不可改變的」錯誤,當我嘗試添加一個B樹索引。我的查詢將在關鍵__的值[_,_]處進行。我不清楚你寫的是什麼,它將作爲鍵上的表達式索引。 – IamIC
還是我需要爲每個鍵創建一個函數?這似乎沒有道理。基本上有些記錄會有'p1',其他的則不會,在hstore中考慮這個EAV模型。 – IamIC
確定 - 關閉這個問題(不知道你是怎麼做的)並且發佈另一個記錄。實現,因爲它不是很清楚,我不明白數據結構有什麼用途,或者你打算如何使用它, –