postgis:添加索引时提示“对访问方法 gist 数据类型 geometry 没有默认的操作符表“

问题

在对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.添加空间索引

现在重新添加空间索引,即可添加成功。

以上完毕。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奋斗鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值