5

我正在尝试像这样重命名 db2 中的表

rename table schema1.mytable to schema2.mytable

但收到以下错误消息:

the name "mytable" has the wrong number of qualifiers.. SQLCODE=-108,SQLSTATE=42601

这里有什么问题......我正在使用 IBM publib 文档中的确切语法。

4

5 回答 5

9

您不能更改给定对象的架构。你必须重新创建它。

有几种方法可以做到这一点:

  • 如果您只有一张表,您可以导出导入/加载该表。如果使用 IDX 格式,则 DDL 将包含在生成的文件中。如果使用其他格式,则表已创建。
  • 您可以使用以下方法重新创建表:

    Create table schema2.mytable like schema1.mytable

  • 您可以使用db2look工具提取 DDL

  • 如果要更改给定架构的架构名称,则可以使用ADMIN_COPY_SCHEMA

最后两个选项只创建表结构,您仍然需要导入数据。创建表后,您可以通过不同的方式插入数据:

  • 直接插入

    insert into schema2.mytable select * from schema1.mytable

  • 通过从游标加载

  • 通过加载或从文件导入(上一步中导出的文件)

问题是外交关系,因为它们必须被重建。

最后,您可以创建一个别名。它更容易,而且您不必处理关系。

于 2013-11-15T15:29:55.363 回答
7

您可以使用以下语句轻松重命名表:

RENAME TABLE SCHEMA.TABLENAME TO NEWTABLENAME;
于 2014-12-17T12:59:08.987 回答
0

您没有在提供的示例中重命名表,而是试图移动到不同的模式,这不是一回事。为此请查看db2move工具。

于 2013-11-15T15:14:01.360 回答
-1

如果您保持原样并使用新名称和架构创建别名怎么办。

于 2014-02-13T06:36:31.817 回答
-2

重命名表意味着在同一模式中重命名表。要在其他模式中重命名,db2 调用它的别名:

db2 为

于 2014-04-29T13:36:38.033 回答