Trafodion 从元数据信息查找对象所属表
来源:互联网 发布:网络红人丁可 编辑:程序博客网 时间:2024/05/16 16:54
今天遇到一个问题,在创建表的时候因为指定了contraint名称而报冲突错误,如下
create table test...constraint aaa primary key (test_id)+>);*** ERROR[8102] The operation is prevented by a unique constraint.*** ERROR[1423] Insert into metadata table OBJECTS failed.--- SQL operation failed with errors.
更换constraint名称aaa为其他或者是移除”constraint aaa”(即使用数据库系统生成的名称)之后可以正常创建表,所以怀疑是constraint aaa在当前数据库已存在,那么该如何去检验呢?
我们知道,Trafodion中有一个元数据相关的schema,用get schemas可以看到,通过set set schema进去可以看到下面有相关的元数据表,用于保存对象的元数据信息,
SQL>get schemas;Schemas in Catalog TRAFODION============================SEABASE_LIBMGR__MD__REPOS__TENANT_MD_--- SQL operation complete.SQL>set schema "_MD_";--- SQL operation complete.SQL>get tables;Tables in Schema TRAFODION._MD_===============================AUTHSCOLUMNSDEFAULTSINDEXESKEYSLIBRARIESLIBRARIES_USAGEOBJECTSREF_CONSTRAINTSROUTINESSEQ_GENTABLESTABLE_CONSTRAINTSTEXTUNIQUE_REF_CONSTR_USAGEVERSIONSVIEWSVIEWS_USAGE--- SQL operation complete.
上面的元数据表中最重要的一个是OJBECTS表,它保存所有的对象的信息,包括OBJECT_NAME、OBJECT_UID等,因此我们可以基于OBJECTS表查找constraints aaa,
>>select object_name, object_type, object_uid from "_MD_".objects where object_name = 'AAA' ;OBJECT_NAME OBJECT_TYPE OBJECT_UID---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------- --------------------AAA PK 5004197302713865672--- 1 row(s) selected.
通过上面SQL语句找到aaa对应的的OBJECT_ID,然后通过OBJECT_ID在TABLE_CONSTRAINTS找到对应的TABLE_UID,
>>select * from "_MD_".table_constraints where constraint_uid = 5004197302713865672;TABLE_UID CONSTRAINT_UID CONSTRAINT_TYPE DISABLED DROPPABLE IS_DEFERRABLE ENFORCED VALIDATED LAST_VALIDATED COL_COUNT INDEX_UID FLAGS-------------------- -------------------- --------------- -------- --------- ------------- -------- --------- -------------------- ----------- -------------------- --------------------5004197302713865655 5004197302713865672 P N N N Y Y 212367304638767804 3 0 0--- 1 row(s) selected.
通过以下结果可以发现,5004197302713865655即为contraint aaa所在表的UID,下面我们通过这个UID再去OBJECTS表中查找对应的表名称,
>>select * from objects where object_uid = 5004197302713865655 ;CATALOG_NAME SCHEMA_NAME OBJECT_NAME OBJECT_TYPE OBJECT_UID CREATE_TIME REDEF_TIME VALID_DEF DROPPABLE OBJECT_OWNER SCHEMA_OWNER FLAGS---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------- -------------------- -------------------- -------------------- --------- --------- ------------ ------------ --------------------TRAFODION SEABASE STG_TEST BT 5004197302713865655 212367304638561613 212367304642149588 Y N 33333 33333 0--- 1 row(s) selected.
那么,STG_TEST就是我们要找的表了,这时,我们可以通过SHOWDDL STG_TEST来查看此表的DDL或者找到原始的DDL来确认是否这个表上有constraint aaa了。。。
阅读全文
1 0
- Trafodion 从元数据信息查找对象所属表
- Trafodion 元数据获取数据库所有表
- trafodion表元数据破坏,hbase数据正常情况下恢复trafodion表数据步骤
- 查找索引所属表
- Trafodion 更新统计信息数据收集
- 查找CLR对象内存所属关系
- 查找CLR对象内存所属关系
- 递归查找当前对象所属的层级
- Trafodion showstats查看表的统计信息
- 从HBase删除所有Trafodion表
- 通过DatabaseMetaData对象获得数据库元数据信息
- 用Kettle从MySQL迁移数据到Trafodion牛刀小试
- 使用Embulk从Oracle抽取数据到Trafodion
- Trafodion 更新统计信息
- 从元数据
- 从UltraGridCell或UltraGridRow获得所属的UltraGrid对象
- Trafodion LOB大对象
- 更换ORACLE表对象所属用户
- ios WebView 打开txt文件乱码问题
- nodejs更新版本命令
- jQuery Core 3.0升级指南
- 解决手机单边框1px问题
- QT手动生成选项卡窗口
- Trafodion 从元数据信息查找对象所属表
- linux使用RAM_DISK根文件系统基本过程
- AE开发图层右键打开属性表
- linux下各种开源工具(当然包含视音频)
- 数据库连接池
- 在配置中修改网站底部文字
- Word实现汉字和拼音分离
- 公务员面试综合分析真题解析
- 关于android sdk content loader 0%不动的问题