db2中constraint_查询DB2数据库约束 | 学步园

近期在做一个功能测试时,需要往DB2数据库中插入一条数据,插入时,一直报“......SQLERRMC=WCSADMIN.MANIFEST.F_428,.....”错误,通过DbVisualizer Personal工具查看该表,显示有一个 F_428外键约束,但是无奈,就是不知道具体是哪一列(或哪几列,本人对这个系统整体数据库结构还不是很熟悉)!!上网搜了一下,得到一遍很实用的文章,得到答案:

通过 “select * from syscat.references where tabname = ‘.....’ ” 查询得到这张表的所有外键,这里就记录了具体是哪些列进行了外键约束!可以根据这个来调整各列的值。

摘抄过来,备用:

SYSCAT.CHECKS

为每个表检查约束包含一行记录

db2 select constname, tabname, text from syscat.checks

SYSCAT.COLCHECKS

为表检查约束所引用的每一列包含一行记录

db2 select constname, tabname, colname, usage from syscat.colchecks

SYSCAT.COLUMNS

NULLS

指明一列是可为空(Y)还是不可为空(N)

db2 select tabname, colname, nulls from syscat.columns where tabschema = 'MELNYK' and nulls = 'N'

SYSCAT.CONSTDEP

为某些其他对象上的约束的每个依赖性包含一行记录

db2 select constname, tabname, btype, bname from syscat.constdep

SYSCAT.INDEXES

为每个索引包含一行记录

db2 select tabname, uniquerule, made_unique, system_required from syscat.indexes where tabschema = 'MELNYK'

SYSCAT.KEYCOLUSE

为惟一、主键或外键约束定义的键中所包含的每个列包含一行记录

db2 select constname, tabname, colname, colseq from syscat.keycoluse

SYSCAT.REFERENCES

为每个参照约束包含一行记录

db2 select constname, tabname, refkeyname, reftabname, colcount, deleterule, updaterule from syscat.references

SYSCAT.TABCONST

为每个惟一(U)、主键(P)、外键(F)或表检查(K)约束包含一行记录

db2 select constname, tabname, type from syscat.tabconst

SYSCAT.TABLES

PARENTS

该表的父表数目(该表在其中充当子表的参照约束数目)

db2 "select tabname, parents from syscat.tables where parents > 0"

SYSCAT.TABLES

CHILDREN

该表的子表数目(该表在其中充当父表的参照约束数目)

db2 "select tabname, children from syscat.tables where children > 0"

SYSCAT.TABLES

SELFREFS

该表的自引用参照约束数目(该表在其中既充当父表又充当子表的参照约束数目)

db2 "select tabname, selfrefs from syscat.tables where selfrefs > 0"

SYSCAT.TABLES

KEYUNIQUE

在该表上所定义的惟一约束(除了主键)的数目

db2 "select tabname, keyunique from syscat.tables where keyunique > 0"

SYSCAT.TABLES

CHECKCOUNT

在该表上所定义的检查约束的数目

db2 "select tabname, checkcount from syscat.tables where checkcount > 0"

“不能为空值!” - 非空约束

非空约束(NOT NULL constraint)防止向一列添加空值。这就确保了该列在表中每一行都存在一个有意义的值。例如,SAMPLE 数据库中 EMPLOYEE 表的定义包括 LASTNAME VARCHAR(15) NOT NULL ,这就确保每行都将包含一个雇员的姓。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值