在db2中重命名具有依赖关系的表



我想更改db2中的表名

rename table X to Y;

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

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

如何重命名此表?

您可以使用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');

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

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

重命名您的表

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

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

第一个是您试图重命名的表的已创建索引。删除索引并重命名表:

RENAME TABLE YourSchemaName.OldtableName TO NewTableName;

并再次创建索引。

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

select * 
from SYSCAT.TABDEP t
where t.BSCHEMA = 'YourSchemaName'
  and t.BNAME = 'YourTableName';

最新更新