在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 窗口。