当前位置:  开发笔记 > 数据库 > 正文

如何从Informix中的名称获取约束详细信息?

如何解决《如何从Informix中的名称获取约束详细信息?》经验,为你挑选了1个好方法。

在编写大型事务(大量插入,删除,更新)并因此违反Informix中的约束(v10,但也应该适用于其他版本)时,我得到一个不太有用的消息,例如,我违反了约束r190_710.如何找出某个约束所涵盖的表和键,我只知道名称?



1> Jonathan Lef..:

Tony Andrews建议(指向URL的不同终点):

从Informix指南到SQL:参考它应该看看系统目录表SYSCONSTRAINTS和SYSINDICES.

该手册中描述了Informix系统目录.

SysConstraints表是分析约束的起点,最肯定的是; 您在该表中找到约束名称,然后您可以从中找到其他详细信息.

但是,您还必须查看其他表,而不仅仅是(甚至直接)SysIndices.

例如,我对数据库中的表有很多NOT NULL约束.对于那些,约束类型是'N',并且不需要在别处寻找更多信息.

约束类型"P"表示主键; 需要通过SysIndexes视图或SysIndices表进行更多分析.类似地,约束类型"U"表示唯一约束,并且需要来自SysIndexes视图或SysIndices表的额外信息.

约束类型"C"表示检查约束; 约束的文本(和二进制编译形式)可以在SysChecks表中找到(数据类型为'T'和'B';数据或多或少用Base-64编码,但没有'='填充在最后并使用62和63的不同字符).

最后,约束类型"R"表示参照完整性约束.您可以使用SysReferences表来查找引用的表,并使用SysIndexes或SysIndices来确定使用引用表和引用表上的哪些索引,从中可以发现相关列.这可能会变得很毛茸茸!

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有