如何在sql DB2中重命名表/移动到不同的模式?
我试图在db2中重命名一个表,如下所示如何在sql DB2中重命名表/移动到不同的模式?,db2,rename,db2-luw,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文档中的确切语法。在提供的示例中,您没有重命名表,而是尝试移动到不同的模式,这不是一回事。查看此工具。您不能更改给定
rename table schema1.mytable to schema2.mytable
但是获取以下错误消息:
the name "mytable" has the wrong number of qualifiers.. SQLCODE=-108,SQLSTATE=42601
这里有什么问题。。。。我使用的是IBM publib文档中的确切语法。在提供的示例中,您没有重命名表,而是尝试移动到不同的模式,这不是一回事。查看此工具。您不能更改给定对象的架构。你必须重新创造它 有几种方法可以做到这一点:
- 如果只有一个表,则可以和/或该表。如果使用IDX格式,DDL将包含在生成的文件中。如果使用其他格式,则已创建该表
- 您可以使用以下命令重新创建表:
像schema1.mytable一样创建表schema2.mytable
- 您可以使用该工具提取DDL
- 如果要更改给定架构的架构名称,可以使用
- 直接插入
插入schema2.mytable从schema1.mytable中选择*
- 通过从游标加载
- 通过加载或导入文件(上一步中导出的文件)
最后,您可以创建一个。这更容易,而且您不必处理关系。如果您保持原样并使用新名称和模式创建别名,该怎么办。重命名表意味着重命名同一模式中的表。要在其他模式中重命名,db2调用其别名:
db2 create alias for您可以使用以下语句轻松重命名表:
RENAME TABLE SCHEMA.TABLENAME TO NEWTABLENAME;
您好,谢谢-我想可能有一个命令可以简单地将表移动到新的模式中,但是您从实际表在另一个模式中创建一个新表,然后插入的方法可以帮我完成这项工作。但是更麻烦,但这很好。还有一个
ADMIN\u MOVE\u TABLE
系统存储过程,它完全按照它所说的做,包括所有依赖项。@mustaccio我还认为ADMIN\u MOVE\u TABLE可以做到这一点,但是文档没有提供不同模式的选项:关于如何移动表的更多信息:愚蠢的我。我想收回我的评论,但为时已晚。不幸的是,这实际上并没有移动表,它只是创建了一个指向它的指针。这在某些情况下很有用,但在实际需要移动表时没有帮助。不幸的是,这实际上并没有移动表,它只是创建了一个指向表的指针。这在某些情况下很有用,但在实际需要移动表时没有帮助。此外,这与现有答案相同。