SQL0750N的错误指示——检查表的关联依赖
来源:互联网 发布:布袋除尘器算法 编辑:程序博客网 时间:2024/05/20 20:22
#重命名emp_photo遇到SQL0750N的错误[db2inst1@db22 ~]$ db2 "rename table db2inst1.emp_photo to emp_photo_210170725"DB21034E The command was processed as an SQL statement because it was not a valid Command Line Processor command. During SQL processing it returned:SQL0750N The statement failed because the table or column cannot be renamed. SQLSTATE=42986#重命名employee遇到SQL0750N的错误[db2inst1@db22 ~]$ db2 "rename table db2inst1.employee to employee_210170725"DB21034E The command was processed as an SQL statement because it was not a valid Command Line Processor command. During SQL processing it returned:SQL0750N The statement failed because the table or column cannot be renamed. SQLSTATE=42986#重命名product成功[db2inst1@db22 ~]$ db2 "rename table db2inst1.product to product_210170725"DB20000I The SQL command completed successfully.#成功之后再改回来哈[db2inst1@db22 ~]$ db2 "rename table db2inst1.product_210170725 to product"DB20000I The SQL command completed successfully.
然后根据知识中心的指导看一下为什么不能重命名:
SQL0750N
The statement failed because the table or column cannot be renamed.
解释
基于下列的一个或多个原因,在RENAME语句中的源表不能被重命名:
- 该表被一个或多个已存在的物化查询表所参考(The table is referenced in one or more existing materialized query tables.)
- 该表 作为一个父表或依赖表被参考约束所牵涉 (The table is involved in one or more referential constraints as a parent or dependent table.)
- 这个表是一个或多个XSR对象的分解目标表 (The table is a target table for decomposition of one or more XSR objects.)
- 这个表是系统运行期间的临时表 (The table is a system-period temporal table.)
- 这个表是一个历史表 (The table is a history table.)
- 数据库管理配置参数auto_reval被设置为DISABLED并且符合下列情形之一的:
- 表被一个或多个已存在的视图所参考(reference)
- 表被一个或多个已存在的触发器所参考(reference)。这包括表上的触发器,和在一个触发器的SQL语句中涉及到的表。
- 表被一个或多个已存在的SQL函数或SQL方法锁参考。
- 表上有检查约束定义,这包括由生成列引起的检查约束。
The column of the target table in an ALTER TABLE statement cannot be renamed because the target table is a history table.
在一个ALTER TABLE语句中目标表中的列不能被重命名,因为目标表是一个历史表。
User response
如果这个错误属于一个RENAME语句,在执行RENAME语句之前 删除 表上面的 视图,物化查询视图,触发器,SQL函数,SQL方法,检查约束,参考约束,及XSR对象依赖。依赖于该表的对象可以通过查询编目视图来获得。
- 对于依赖于表的视图和物化查询视图,查询 SYSCAT.VIEWDEP 编目视图中 BSCHEMA 和 BNAME列匹配该表的行。
- 对于依赖于表的触发器,查询 SYSCAT.TRIGDEP 编目视图中 BSCHEMA 和 BNAME列匹配该表的行。
- 对于依赖于表的SQL函数和SQL方法,查询 SYSCAT.ROUTINEDEP 编目视图中 BSCHEMA 和 BNAME列匹配该表的行。
- 对于表上的检查约束(check constraints), 查询SYSCAT.CHECKS 编目视图中 TABSCHEMA 和 TABBNAME 列匹配该表的行.
- 对于依赖于该表的参考约束(referential constraints),查询SYSCAT.REFERENCES 编目视图中TABSCHEMA 和 TABBNAME 列匹配该表的行 或 REFTABSCHEMA 和 REFTABNAME 列匹配该表的行。
- 对于依赖于 For XSR objects enabled for decomposition for which the table is a target,
查询SYSCAT.XSROBJECTDEP编目视图中BSCHEMA 和BNAME列匹配该表的记录。
[db2inst1@db22 ~]$ db2 "select > substr(CONSTNAME,1,15) as CONSTNAME, > substr(TABSCHEMA ,1,10) as TABSCHEMA , > substr(TABNAME,1,15) as TABNAME , > substr(REFKEYNAME,1,15) as REFKEYNAME , > substr(REFTABSCHEMA,1,10) as REFTABSCHEMA , > substr(REFTABNAME,1,15) as REFTABNAME , > substr(FK_COLNAMES,1,20) as FK_COLNAMES, > substr(PK_COLNAMES,1,20) as PK_COLNAMES > from syscat.references"CONSTNAME TABSCHEMA TABNAME REFKEYNAME REFTABSCHEMA REFTABNAME FK_COLNAMES PK_COLNAMES --------------- ---------- --------------- --------------- ------------ --------------- -------------------- --------------------ROD DB2INST1 DEPARTMENT PK_DEPARTMENT DB2INST1 DEPARTMENT ADMRDEPT DEPTNO RED DB2INST1 EMPLOYEE PK_DEPARTMENT DB2INST1 DEPARTMENT WORKDEPT DEPTNO FK_EMP_PHOTO DB2INST1 EMP_PHOTO PK_EMPLOYEE DB2INST1 EMPLOYEE EMPNO EMPNO FK_EMP_RESUME DB2INST1 EMP_RESUME PK_EMPLOYEE DB2INST1 EMPLOYEE EMPNO EMPNO FK_PROJECT_1 DB2INST1 PROJECT PK_DEPARTMENT DB2INST1 DEPARTMENT DEPTNO DEPTNO FK_PROJECT_2 DB2INST1 PROJECT PK_EMPLOYEE DB2INST1 EMPLOYEE RESPEMP EMPNO RPP DB2INST1 PROJECT PK_PROJECT DB2INST1 PROJECT MAJPROJ PROJNO RPAP DB2INST1 PROJACT PK_PROJECT DB2INST1 PROJECT PROJNO PROJNO REPAPA DB2INST1 EMPPROJACT PK_PROJACT DB2INST1 PROJACT PROJNO PROJNO RPAA DB2INST1 ACT PK_ACT DB2INST1 ACT ACTNO ACTNO RDE DB2INST1 DEPARTMENT PK_EMPLOYEE DB2INST1 EMPLOYEE MGRNO EMPNO FK_PO_CUST DB2INST1 PURCHASEORDER PK_CUSTOMER DB2INST1 CUSTOMER CUSTID CID 12 record(s) selected.
可以看到有个匹配到emp_photo 的行
一些涉及到的概念细化
物化查询视图 materialized query table
histoty table
检查约束
- SQL0750N的错误指示——检查表的关联依赖
- 架构设计的检查表
- 检查表的HWM Script
- 自己总结的硬件检查表
- Oracle 检查表的数据变动
- Oracle 检查表的数据变动
- 依赖和关联的理解!
- 依赖和关联的区别
- 类的依赖与关联
- 关联与依赖的区别
- 依赖和关联的区别
- 依赖和关联的区别
- 关联和依赖的区别
- 依赖和关联的区别
- 依赖和关联的区别
- 依赖和关联的区别
- 依赖与关联的比较
- 关联和依赖的区别
- laravel框架总结 -- 请求和响应
- JAVA八大基本数据类型
- react项目学习笔记三(ant design)
- android 控件各种颜色的半透明效果配置
- 20分钟带你入门机器学习-课堂讲义
- SQL0750N的错误指示——检查表的关联依赖
- 2.清除浮动
- Windows下安装Jmeter
- vi命令大全
- Android数据库更新并保留原来数据的实现
- 10. Servlet Session 处理
- JavaScript的Object 类型
- 作用域插槽列表的简单应用实例
- 优雅的JavaScript-BOM详解