Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.0 (中文) » SQL Anywhere 服务器 - 空间数据支持 » 空间数据入门 » 空间数据用法主题 » 创建空间列

 

用 SRID 作为列约束

可通过 SRID 约束对可存储在空间列中的值加以限制。例如,执行以下语句可创建一个名为 Test 的表,该表的 Geometry_2 列存在 SRID 约束 (SRID=4326):

CREATE TABLE Test (
   ID INTEGER PRIMARY KEY,
   Geometry_1 ST_Geometry,
   Geometry_2 ST_Geometry(SRID=4326),
   );

此约束表示只有与 SRID 4326 相关联的值才可存储在此列中。

列 Geometry_1 无任何约束,因此可存储与任何 SRID 相关联的值。

要想在索引中包括某个空间列,该列必须具有 SRID 约束。例如,您无法对 Geometry_1 列创建索引。但可以对 Geometry_2 列创建索引。

如果您所拥有的表具有现有空间列,则可使用 ALTER ABLE 语句为空间列添加 SRID 约束。例如,执行类似于以下内容的语句可为名为 Test 的表中的 Geometry_1 列添加约束:

ALTER TABLE Test 
   MODIFY Geometry_1 ST_Geometry(SRID=4326);
注意

要向表中添加空间列,必须确保已为该表定义了主键。除非已定义了主键,否则包含空间列的表将不支持更新和删除操作。