問題
在對gis表的geom字段創建空間索引時,出現“對訪問方法 "gist" 數據類型 geometry 沒有默認的操作符表”的提示報錯。
解決方案
按系列步驟進行排查并解決。
1.先確認已安裝postgis
-- 查看postgis版本
SELECT postgis_full_version()
?若安裝了則會看到輸出
若未安裝,則需要在當前數據庫啟用postgis擴展。
-- 啟用postgis擴展(每個數據庫都需單獨啟用)
CREATE EXTENSION IF NOT EXISTS postgis;
啟用成功后再用第1點即可查看到postgis版本。
2.查看所有已安裝的擴展,里面應該是有postgis記錄。
-- 查看所有已安裝的擴展(按名稱過濾)
SELECT extname, extversion?
FROM pg_extension?
WHERE extname = 'postgis';
查詢到結果如下:
若未查詢到記錄,則需要重新安裝postgis擴展
3.重新安裝擴展
-- 刪除 public 模式中的 PostGIS 對象(需要超級用戶權限)
DROP SCHEMA public CASCADE;
CREATE SCHEMA public;-- 重新授予權限(根據實際情況調整)
GRANT ALL ON SCHEMA public TO postgres;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO postgres;-- 安裝擴展(強制覆蓋)
CREATE EXTENSION postgis SCHEMA public;
重新安裝后,重新運行第3點可查詢到postgis記錄了。
4.添加空間索引
現在重新添加空間索引,即可添加成功。
以上完畢。