可通过 SRID 约束对可存储在空间列中的值加以限制。要想在索引中包括空间列,该列必须具有 SRID 约束,SRID 约束可以使用 CREATE TABLE 和 ALTER TABLE 语句添加。
前提条件
要更改表,您必须是表的所有者、对表具有 ALTER 特权,或者具有 ALTER ANY TABLE 或 ALTER ANY OBJECT 系统特权。
要向表中添加空间列,必须确保已为该表定义了主键。除非已定义了主键,否则包含空间列的表将不支持更新和删除操作。
上下文和注释
空间列不能包括在主键、唯一索引或唯一约束中。
执行包含空间列的 SRID 约束的 CREATE TABLE 或 ALTER TABLE 语句。
CREATE TABLE Test (
ID INTEGER PRIMARY KEY,
Geometry_1 ST_Geometry,
Geometry_2 ST_Geometry(SRID=4326),
); |
例
例如,执行以下语句可创建一个名为 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); |
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2013, SAP 股份公司或其关联公司. - SAP Sybase SQL Anywhere 16.0 |