我正在尝试重命名db2中的表,如此
rename table schema1.mytable to schema2.mytable
但收到以下错误消息:
the name "mytable" has the wrong number of qualifiers.. SQLCODE=-108,SQLSTATE=42601
这里有什么问题....我正在使用IBM publib文档中的确切语法。
答案 0 :(得分:8)
您无法更改给定对象的架构。你必须重新创建它。
有几种方法可以做到这一点:
您可以使用以下方法重新创建表格:
Create table schema2.mytable like schema1.mytable
您可以使用db2look工具
最后两个选项只创建表结构,您仍然需要导入数据。创建表后,您可以通过不同的方式插入数据:
直接插入
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为
创建别名