DB2添加驗(yàn)證約束的實(shí)現(xiàn)
約束是數(shù)據(jù)庫(kù)系統(tǒng)中的重要部分,下面為您介紹的是DB2添加驗(yàn)證約束的實(shí)現(xiàn)方法,如果您對(duì)DB2添加驗(yàn)證約束方面感興趣的話,不妨一看。
數(shù)據(jù)庫(kù)中約束用來(lái)確保表中不會(huì)使用無(wú)效的數(shù)據(jù)。不滿足已定義的約束的行會(huì)被拒絕。在這個(gè)練習(xí)中,將驗(yàn)證約束,看看在輸入無(wú)效數(shù)據(jù)時(shí)會(huì)發(fā)生什么情況。
表 PARTICIPANT 中有一個(gè)外鍵,這意味著對(duì)于 PARTICIPANT 的 PAR_ID 列中的每個(gè)值,在 MODULE 表中必須有具有相同 MODULE_ID 列值的行。因?yàn)?MODULE 表當(dāng)前是空的,所以如果在 PARTICIPANT 表中輸入數(shù)據(jù),那么這個(gè)條件無(wú)法得到滿足。按照以下步驟驗(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,這說(shuō)明未滿足外鍵約束所規(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)方法。
【編輯推薦】
SQL SERVER連接DB2數(shù)據(jù)庫(kù)