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

SAP Sybase SQL Anywhere 16.0 (中文) » SQL Anywhere 服务器 - 空间数据支持 » 空间数据 » 创建一个空间列 (Sybase Central)

 

添加 SRID 列约束

可通过 SRID 约束对可存储在空间列中的值加以限制。要想在索引中包括空间列,该列必须具有 SRID 约束,SRID 约束可以使用 CREATE TABLE 和 ALTER TABLE 语句添加。

前提条件

要更改表,您必须是表的所有者、对表具有 ALTER 特权,或者具有 ALTER ANY TABLE 或 ALTER ANY OBJECT 系统特权。

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

上下文和注释

空间列不能包括在主键、唯一索引或唯一约束中。

 添加 SRID 列约束
  • 执行包含空间列的 SRID 约束的 CREATE TABLE 或 ALTER TABLE 语句。

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

结果

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 相关联的值。

您无法对 Geometry_1 列创建索引。但可以对 Geometry_2 列创建索引。

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

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

 另请参见