南大通用GBase8s 常用SQL语句(258)

    1. SET INDEXES 语句

使用 SET INDEXES 语句来启用或禁用用户定义的索引,或更改唯一索引的过滤模式。

此语句是对 SQL 的 ANSI/ISO 标准的扩展。

语法

 

元素

描述

限制

语法

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;

 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 操作。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值