我的表是包含兩列的父子表。第一列是ID
這是自動編號。另一欄是ParentID
,具有特殊條件。如果該行是父親ParentID = 0
否則它應該與ParentID行相關。例如:我可以使用帶檢查約束的select語句
**ID** | **ParentID**
---------------------
1 0
2 0
3 2
4 [it can be 0 or 1 or 2 NOT 3]
ParentID取決於ID列,如果ID包含ParentID = 0,則ParentID可以是該ID。
問題是我可以這樣做嗎?
constraint ParentID_ck ckeck(ParentID in(0, select ID from table where ParentID = 0;))
還是應該使用其他解決方案,如PL/SQL:
DECLARE
--Somthing..
BEGIN
--Somthing..
END;
並把它的檢查約束內。
我需要限制用戶在該約束上。用戶不能插入任何與該條件相反的行。 – 7alhashmi