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

时间:2013-07-05 13:27:37

标签: db2

我想改变db2中的表名

rename table X to Y;

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

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

如何重命名此表?

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

删除所有约束,并删除引用表

的所有触发器

重命名你的表

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

答案 2 :(得分:0)

很多原因都可能导致这种错误:

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

<!DOCTYPE html>
<html ng-app="store">
<head>
    <link rel="stylesheet" href="style.css">
</head>
<body ng-controller="StoreController as vm">
    <section>
        <div ng-repeat="product in vm.products" class="product">
            <h2>{{product.category}}</h2>
            <div ng-repeat="product in product.products">
                <a href ng-click="vm.select(product)">{{product.name}}</a>
            </div>
        </div>
    </section>
    <section id="results">
        Selected product data should be loaded here:
        <div class="product">
            <h2>{{vm.selected.name}}</h2>
            <div class="product-desc">
                <p>{{vm.selected.description}}</p>
            </div>
        </div>
    </section>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.3/angular.min.js"></script>
</body>

</html>

再次创建索引。

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

RENAME TABLE YourSchemaName.OldtableName TO NewTableName;