我的表是父子表,其中包含两列。第一列ID
是自动编号。另一列是ParentID
具有特殊条件的列。如果该行是父行,ParentID = 0
否则它应该与 ParentID 行相关。例如:
**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;
并将其放在检查约束内。