- RENAME DATABASE 语句
使用 RENAME DATABASE 语句来更改数据库的名称。此语句为对 SQL 的 ANSI/ISO 标准的扩展。
语法
元素 | 描述 | 限制 | 语法 |
new_database | 您在此为 old_database 声明的新名称 | 必须在当前数据库服务器的数据库名称之中为唯一的;当发出此语句时,必须未被任何用户打开 | 数据库名 |
old_database | new_database 替代的名称 | 必须在当前数据库服务器上存在,但它不可为当前数据库的名称 | 数据库名 |
owner | old_database 的所有者 | 必须为该数据库的所有者 | 所有者名称 |
用法
如果下列条件之一为真,则您可重命名数据库:
- 您创建了该数据库。
- 您有对该数据库的 DBA 权限。
然而,如果指定的数据库包含任何下列对象,则 RENAME DATABASE 语句失败,并报错 -9874:
- 虚拟表
- 虚拟索引
- R-tree 索引
- 在用户定义的主访问方法中或在用户定义的辅助访问方法中,引用数据库的当前名称的 DataBlade。
您仅可重命名您当前连接到的数据库服务器的数据库。
您不可从 SPL 例程之内重命名数据库。
- RENAME INDEX 语句
使用 RENAME INDEX 语句来更改现有的索引的名称。此语句为对 SQL 的 ANSI/ISO 标准的扩展。
语法
元素 | 描述 | 限制 | 语法 |
new_index | 您在此为该索引声明的新名称 | 名称对于该数据库必须为唯一的(或如果 old_index 在临时表上,则是对于该会话) | 标识符 |
old_index | new_index 替代的索引名称 | 必须存在,但不可为下列中的任何之一: -- 在系统目录表上的索引 -- 系统生成的约束索引 -- “虚拟索引接口”(VII) | 标识符 |
owner | 索引的所有者 | 必须为 old_index 的所有者 | 所有者名称 |
用法
如果您是该索引的所有者或有对该数据库的 DBA 权限,则可重命名索引。
当您重命名索引时,数据库服务器更改 sysindexes、sysconstraints、sysobjstate 和 sysfragments 系统目录表中的索引名称。(但对于临时表上的索引,不更新系统目录表。)
不可重命名系统目录表上的索引。如果您想更改实施约束的系统生成的索引的名称,请使用 ALTER TABLE ... DROP CONSTRAINT 语句来删除该约束,然后再使用 ALTER TABLE ... ADD CONSTRAINT 语句来定义新的约束,新约束与您删除了的约束有相同的定义,但对于您声明的新名称。
在缺省情况下,重新优化使用该重命名了的索引的 SPL 例程,当重命名该索引之后下一次执行它们时。然而,当启用自动的重编译时,如果该重命名了的索引与直接地引用了的表相关联,则在下一次使用该重命名了的索引时,自动地重编译 SPL 例程。然而,如果仅间接地引用该表,执行可失败,并报错 -710。要获取更多关于在更改被引用的表的模式之后,启用或禁用自动的重编译的信息,请参阅 IFX_AUTO_REPREPARE 环境选项。要获取更多关于 AUTO_REPREPARE 配置参数的信息,请参阅您的 GBase 8s 管理员参考手册。