Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql “类型”;“几何学”;架构上不存在,但扩展不存在_Sql_Postgresql_Postgis_Database Schema - Fatal编程技术网

Sql “类型”;“几何学”;架构上不存在,但扩展不存在

Sql “类型”;“几何学”;架构上不存在,但扩展不存在,sql,postgresql,postgis,database-schema,Sql,Postgresql,Postgis,Database Schema,注:不可复制 我正在尝试在名为test的新模式上使用Postgis几何列创建一个表 首先我跑: 设置要测试的搜索路径; 然后,当我尝试运行以下语句时: 创建表空间(id序列、名称文本、地理几何体、主键(id)); 我发现错误类型“geometry”不存在 我已尝试运行以下两项: 创建扩展postgis; --以及: 创建扩展postgis模式测试; 但这两种情况都会导致错误扩展名“postgis”已经存在 请注意,当使用public模式时,它可以正常工作 这里有什么我遗漏的吗?听起来Pos

注:不可复制

我正在尝试在名为
test
的新模式上使用Postgis几何列创建一个表

首先我跑:

设置要测试的搜索路径;
然后,当我尝试运行以下语句时:

创建表空间(id序列、名称文本、地理几何体、主键(id));
我发现错误
类型“geometry”不存在

我已尝试运行以下两项:

创建扩展postgis;
--以及:
创建扩展postgis模式测试;
但这两种情况都会导致错误
扩展名“postgis”已经存在

请注意,当使用
public
模式时,它可以正常工作


这里有什么我遗漏的吗?

听起来Postgis安装在
公共
模式中,而不是
测试
模式中。要验证您是否可以运行

SELECT nspname
       FROM pg_extension ext
            INNER JOIN pg_namespace nsp
                       ON nsp.oid = ext.extnamespace
       WHERE ext.extname = 'postgis';
这将为您提供安装Postgis的模式


然后模式限定类型,如
public.geometry
或安装Postgis的任何模式。

听起来Postgis安装在
public
模式中,而不是
test
模式中。要验证您是否可以运行

SELECT nspname
       FROM pg_extension ext
            INNER JOIN pg_namespace nsp
                       ON nsp.oid = ext.extnamespace
       WHERE ext.extname = 'postgis';
这将为您提供安装Postgis的模式


然后,schema限定类型,如
public.geometry
或安装了任何schema Postgis的类型。

谢谢。可以在多个模式上安装扩展吗?据我所知,不可以。可以:
DROP extension postgis;将搜索路径设置为public;创建扩展postgis
@Kartik这将删除扩展并在
public
架构中再次创建它。我认为在多个模式中不可能有
posgis
扩展。但是您可以根据“谢谢”更改模式。可以在多个模式上安装扩展吗?据我所知,不可以。可以:
DROP extension postgis;将搜索路径设置为public;创建扩展postgis
@Kartik这将删除扩展并在
public
架构中再次创建它。我认为在多个模式中不可能有
posgis
扩展。但是您可以根据需要更改模式