前言
在DB2数据库操作的过程中,存在对现有表格的操作,但其中有一点需要特别说明的就是,对约束项的操作不是直接对某一列,而是对约束项编号进行操作。
数据库中约束项
DB2有五种约束:
-
NOT NULL:约束是这样一种规则,它防止在表的一列或多列中输入空值。
-
UNIQUE:唯一约束(也称为唯一键约束)是这样一种规则,它禁止表的一列或多列中出现重复值。唯一键和主键是受支持的唯一约束。例如,可对供应商表中的供应商标识定义唯一约束以确保不会对两个供应商指定同一供应商标识。
-
PRIMARY KEY:主键约束是与唯一约束具有相同属性的一列或列的组合。可使用主键和外键约束来定义表之间的关系。
-
FOREIGN KEY:外键约束(也称为引用约束或引用完整性约束)是关于一个或多个表中的一列或多列中的值的一种逻辑规则。例如,一组表共享关于公司的供应商的信息。供应商的名称有时可能会更改。可定义一个引用约束,声明表中的供应商的标识必须与供应商信息中的供应商标识相匹配。此约束会阻止可能导致丢失供应商信息的插入、更新或删除操作。
-
CHECK:(表)检查约束(也称为检查约束)对添加至特定表的数据设置限制。例如,表检查约束可确保每一条数据都小于等于3。
查询约束项
此时需要注意,约束项的删除不是对某列来操作,而是对某张表的约束名来进行操作。所以此时需要通过查询语句查询出目标表的所有约束项后,对想要删除的约束项进行操作。
查询相关操作手册:
目录视图 | 视图列 | 描述 | 查询实例 |
---|---|---|---|
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 | 为每个索引包含一行记录 |