2008年(5645)
分类:
2008-04-28 14:22:25
在DB2数据库中约束用来确保表中不会使用无效的数据。不满足已定义的约束的行会被拒绝。在这个练习中,将验证约束,看看在输入无效数据时会发生什么情况。
表 PARTICIPANT 中有一个外键,这意味着对于 PARTICIPANT 的 PAR_ID 列中的每个值,在 MODULE 表中必须有具有相同 MODULE_ID 列值的行。因为 MODULE 表当前是空的,所以如果在 PARTICIPANT 表中输入数据,那么这个条件无法得到满足。按照以下步骤验证约束:
1、在 Control Center 中,点击 PARTICIPANT 表,然后点击 Open。在 Open Table 面板中,点击 Add Row。将下面所示的行输入 PARTICIPANT 表并点击 Commit。
图1. Control Center —— 插入行
2、返回消息 SQL0530N,这说明未满足外键约束所规定的引用完整性要求。
3、点击 Close 关闭消息,再次点击关闭 Open Table 窗口。
4、验证已经在 MODULE 表上定义的检查约束。因为在创建 MODULE 表时建立了检查约束(“CONSTRAINT MID_CHECK CHECK (MODULE_ID >= 0)”),所以 MODULE_ID 不能包含负数。
5、在 Control Center 中,点击 MODULE 表,然后点击 Open。在 Open Table 面板中,将一个 MODULE_ID 列值为负数的行插入 MODULE 表中,并为 MODULE_NAME 提供一个名称。尝试插入,看看会发生什么情况。下面的错误消息指出不应该这么做:
图2. 验证检查约束
6、点击 Close 关闭消息,再次点击 Close 关闭 Open Table 窗口。
在DB2数据库中约束用来确保表中不会使用无效的数据。不满足已定义的约束的行会被拒绝。在这个练习中,将验证约束,看看在输入无效数据时会发生什么情况。
表 PARTICIPANT 中有一个外键,这意味着对于 PARTICIPANT 的 PAR_ID 列中的每个值,在 MODULE 表中必须有具有相同 MODULE_ID 列值的行。因为 MODULE 表当前是空的,所以如果在 PARTICIPANT 表中输入数据,那么这个条件无法得到满足。按照以下步骤验证约束:
1、在 Control Center 中,点击 PARTICIPANT 表,然后点击 Open。在 Open Table 面板中,点击 Add Row。将下面所示的行输入 PARTICIPANT 表并点击 Commit。
图1. Control Center —— 插入行
2、返回消息 SQL0530N,这说明未满足外键约束所规定的引用完整性要求。
3、点击 Close 关闭消息,再次点击关闭 Open Table 窗口。
4、验证已经在 MODULE 表上定义的检查约束。因为在创建 MODULE 表时建立了检查约束(“CONSTRAINT MID_CHECK CHECK (MODULE_ID >= 0)”),所以 MODULE_ID 不能包含负数。
5、在 Control Center 中,点击 MODULE 表,然后点击 Open。在 Open Table 面板中,将一个 MODULE_ID 列值为负数的行插入 MODULE 表中,并为 MODULE_NAME 提供一个名称。尝试插入,看看会发生什么情况。下面的错误消息指出不应该这么做:
图2. 验证检查约束
6、点击 Close 关闭消息,再次点击 Close 关闭 Open Table 窗口。
下载本文示例代码