如何在sql db2中重命名表?

bru*_*lin 4 db2 rename db2-luw

我试图在db2中重命名一个表,就像这样

rename table schema1.mytable to schema2.mytable
Run Code Online (Sandbox Code Playgroud)

但收到以下错误消息:

the name "mytable" has the wrong number of qualifiers.. SQLCODE=-108,SQLSTATE=42601
Run Code Online (Sandbox Code Playgroud)

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

Ang*_*ocA 8

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

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

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

    Create table schema2.mytable like schema1.mytable

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

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

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

  • 直接插入

    insert into schema2.mytable select * from schema1.mytable

  • 通过游标加载

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

问题是外交关系,因为它们必须重新创建.

最后,您可以创建别名.它更容易,你不必处理关系.


小智 7

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

RENAME TABLE SCHEMA.TABLENAME TO NEWTABLENAME;
Run Code Online (Sandbox Code Playgroud)