如何在sql DB2中重命名表/移动到不同的模式?

时间:2013-11-15 15:08:40

标签: db2 rename db2-luw

我正在尝试重命名db2中的表,如此

rename table schema1.mytable to schema2.mytable

但收到以下错误消息:

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

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

5 个答案:

答案 0 :(得分:8)

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

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

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

    Create table schema2.mytable like schema1.mytable

  • 您可以使用db2look工具

  • 提取DDL
  • 如果要更改给定模式的模式名称,可以使用ADMIN_COPY_SCHEMA

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

  • 直接插入

    insert into schema2.mytable select * from schema1.mytable

  • 通过光标加载

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

问题在于外交关系,因为它们必须重新创建。

最后,您可以创建alias。它更容易,你不必处理关系。

答案 1 :(得分:6)

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

RENAME TABLE SCHEMA.TABLENAME TO NEWTABLENAME;

答案 2 :(得分:0)

你没有在提供的例子中重命名表,你试图转移到不同的模式,这不是一回事。请查看db2move工具。

答案 3 :(得分:-1)

如果保留原样并使用新名称和架构创建别名,该怎么办?

答案 4 :(得分:-2)

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

db2为

创建别名