DB2添加驗(yàn)證約束的實(shí)現(xiàn)
約束是數(shù)據(jù)庫系統(tǒng)中的重要部分,下面為您介紹的是DB2添加驗(yàn)證約束的實(shí)現(xiàn)方法,如果您對(duì)DB2添加驗(yàn)證約束方面感興趣的話,不妨一看。
數(shù)據(jù)庫中約束用來確保表中不會(huì)使用無效的數(shù)據(jù)。不滿足已定義的約束的行會(huì)被拒絕。在這個(gè)練習(xí)中,將驗(yàn)證約束,看看在輸入無效數(shù)據(jù)時(shí)會(huì)發(fā)生什么情況。
表 PARTICIPANT 中有一個(gè)外鍵,這意味著對(duì)于 PARTICIPANT 的 PAR_ID 列中的每個(gè)值,在 MODULE 表中必須有具有相同 MODULE_ID 列值的行。因?yàn)?MODULE 表當(dāng)前是空的,所以如果在 PARTICIPANT 表中輸入數(shù)據(jù),那么這個(gè)條件無法得到滿足。按照以下步驟驗(yàn)證約束:
1、在 Control Center 中,點(diǎn)擊 PARTICIPANT 表,然后點(diǎn)擊 Open。在 Open Table 面板中,點(diǎn)擊 Add Row。將下面所示的行輸入 PARTICIPANT 表并點(diǎn)擊 Commit。
圖1. Control Center —— 插入行
2、返回消息 SQL0530N,這說明未滿足外鍵約束所規(guī)定的引用完整性要求。
3、點(diǎn)擊 Close 關(guān)閉消息,再次點(diǎn)擊關(guān)閉 Open Table 窗口。
4、驗(yàn)證已經(jīng)在 MODULE 表上定義的檢查約束。因?yàn)樵趧?chuàng)建 MODULE 表時(shí)建立了檢查約束(“CONSTRAINT MID_CHECK CHECK (MODULE_ID >= 0)”),所以 MODULE_ID 不能包含負(fù)數(shù)。
5、在 Control Center 中,點(diǎn)擊 MODULE 表,然后點(diǎn)擊 Open。在 Open Table 面板中,將一個(gè) MODULE_ID 列值為負(fù)數(shù)的行插入 MODULE 表中,并為 MODULE_NAME 提供一個(gè)名稱。嘗試插入,看看會(huì)發(fā)生什么情況。下面的錯(cuò)誤消息指出不應(yīng)該這么做:
圖2. 驗(yàn)證檢查約束
6、點(diǎn)擊 Close 關(guān)閉消息,再次點(diǎn)擊 Close 關(guān)閉 Open Table 窗口。
以上就是DB2添加驗(yàn)證約束的實(shí)現(xiàn)方法。
【編輯推薦】