暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

数据库学习Q&A 078:OceanBase数据库如何创建空间列?

使用 CREATE TABLE 语句创建具有空间列的表,语法示例如下:

CREATE TABLE geom (g GEOMETRY);

使用ALTER TABLE 语句在现有表中添加或删除空间列,语法示例如下:

ALTER TABLE geom ADD pt POINT;
ALTER TABLE geom DROP pt;

示例如下:

obclient> CREATE TABLE geom (
    p POINT SRID 0,
    g GEOMETRY NOT NULL SRID 4326
);
Query OK, 0 rows affected

创建空间列的相关约束如下:

  • 定义空间列的时候,可以显式指定 SRID。如果列上没有定义 SRID,查询的时候优化器不会选择空间索引,但是插入/更新的时候,仍然会生成索引记录。

  • 空间列在指定 NOT NULL 约束以及指定了 SRID 之后,可以在空间列上定义空间索引,也即只有定义了 SRID 的列才能使用空间索引。

  • 在空间列上定义了 SRID 之后,插入其它 SRID 值会报错。

SRID 的相关约束如下:

  • 空间列上显示指定了 SRID

  • 列上所有对象的 SRID 必须一样。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论