元素 描述 限制 语法 index 要启用、禁用或更改它的过滤模式的索引 必须存在 标识符 table 要全部启用、禁用或更改其索引的过滤模 式的表 必须存在 标识符 用法 您可使用此语句来启用或禁用特定的索引或索引的列表。您还可使用 table 选项 来在未指定其单个标识符的表上启用或禁用所有用户定义的索引。例如,以下两 个示例分别地禁用和启用 cust_calls 表上的所有索引: SET INDEXES FOR cust_calls DISABLED; SET INDEXES FOR cust_calls ENABLED; 在您打算 LOAD 或 TRUNCATE 表中的所有数据,或合并表中的空闲空间的地 方,此简单的语法可便于操作。 显式定义的索引和隐式定义的索引 SET INDEXES 语句对 CREATE INDEX 语句显式地创建的索引进行操作。然 而,这对 PRIMARY KEY 或 FOREIGN KEY 约束定义显式地创建的系统定义的 索引不起作用。SET INDEXES 语句不可指定以空格(ASCII 32)字符开头的系统 生成的名称,即使您的数据库有 DELIMIDENT 环境变量设置来支持双引号作为 数据库对象标识符的定界符。 要启用或禁用隐式定义的索引,请改为使用 SET CONSTRAINTS 语句,其 FOR table 选项可隐式地引用系统生成的约束,如下例中所示: SET CONSTRAINTS FOR cust_calls DISABLED;
GBase 8s SQL 指南:语法 南大通用数据技术股份有限公司 1049 SET CONSTRAINTS FOR cust_calls ENABLED; 要禁用表的所有显式定义的索引和隐式定义的索引,请同时使用 SET INDEXES 和 SET CONSTRAINTS 语句的 FOR table 选项,如下例中所示: SET INDEXES FOR cust_calls DISABLED; SET CONSTRAINTS FOR cust_calls DISABLED; 通过将上例中的 DISABLED 替换为 ENABLED ,您可类似地启用表的所有显式定义 的索引和隐式定义的索引,而不引用隐式定义的索引的系统生成的名称。 SET INDEXES 语句是 SET Database Object Mode 语句的一个特例。SET Database Object Mode 语句还可启用或禁用触发器或约束,或可更改约束和唯一索引的过滤 模式。 要获取 SET INDEXES 语句的完整语法和语义,请参阅 SET Database Object Mode 语句。 请不要将 SET INDEXES 语句与 SET INDEX 语句混淆。在当前版本中, GBase 8s 数据库服务器不理会 SET INDEX 语句。 辅助服务器上的限制 在集群环境中,在可更新的辅助服务器上不支持 SET INDEXES 语句。(一般地 说,SET Database Object Mode 语句指定的会话级索引、触发器和约束模式不被重 新指向辅助服务器的数据库中的表对象上的 UPDATE 操作。)
使用间隔函数从包含表示 INTERVAL 限定符中的时间单位和分隔符的数字和字 符串的参数中返回 INTERVAL 值。这些函数在定义或修改索引和表的范围间隔 分布式存储策略的 CREATE TABLE 、CREATE INDEX 和 ALTER FRAGMENT 语句中非常有用。 间隔函数将数字或字符串转换为 INTERVAL DAY TO SECOND 或 INTERVAL YEAR TO MONTH 字面值,或第二个参数中指定的时间单位的有效精度。然而, 这些函数不支持 FRACTION 或 .FRACTION 作为它们的第二个参数中的最后一 个时间单位。 TO_DSINTERVAL 函数 TO_DSINTERVAL 函数将表示时间单位的字符串转换为 INTERVAL DAY TO SECOND 字符值。此函数还可以接受数字和字符串作为其参数,并以单个时间单 位精度 DAY 、HOUR 、MINUTE 或 SECOND 返回 INTERVAL 值。 当您定义范围间隔存储分配策略以分片表或索引时,您可以使用单个参数(或两 个参数,其同义词 NUMTODSINTERVAL)的 TO_DSINTERVAL 函数来指定间 隔范围值。 语法 数字转换为 INTERVAL