1

我想更改 db2 中的表名

rename table X to Y;

但是这个表有依赖关系,所以我得到这个错误:

DB2 SQL Error:SQLCODE=-750, SQLSTATE=42986, SQLERRMC=null, DRIVER=3.57.82

如何重命名此表?

4

3 回答 3

3

您可以使用 admin_mov_table 存储过程重命名表。

这里的信息:http: //publib.boulder.ibm.com/infocenter/db2luw/v10r1/topic/com.ibm.db2.luw.sql.rtn.doc/doc/r0055069.html

call SYSPROC.ADMIN_MOVE_TABLE ('myschema', 'X', 'Y', '', 'MOVE');
于 2013-07-05T15:10:02.027 回答
2

在该表上运行 adb2look以获取所有引用,并备份此 DDL。

删除所有约束,并删除所有引用该表的触发器

重命名你的表

使用 DDL,将其更改为指向新的表名,并重新创建依赖项

于 2013-07-05T13:47:05.040 回答
0

许多原因可能导致此错误:

首先是您尝试重命名的表的创建索引。删除索引并重命名表:

RENAME TABLE YourSchemaName.OldtableName TO NewTableName;

并再次创建索引。

另一个原因是对象(视图、存储过程和外键)。此请求向您显示哪个对象链接到您要重命名的表:

select * 
from SYSCAT.TABDEP t
where t.BSCHEMA = 'YourSchemaName'
  and t.BNAME = 'YourTableName';
于 2017-04-10T15:14:37.060 回答