Моя таблица является родительско-дочерней таблицей, где она содержит два столбца. Первый столбец - 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, если идентификатор содержит ParentID = 0, то ParentID может быть этот идентификатор.
Вопрос в том, могу ли я сделать что-то подобное?
constraint ParentID_ck ckeck(ParentID in(0, select ID from table where ParentID = 0;))
Или я должен использовать другие решения, такие как PL/SQL:
DECLARE
--Somthing..
BEGIN
--Somthing..
END;
И поместить его в проверочном ограничении.
Мне нужно ограничить пользователя этим ограничением. Если пользователь не может вставить какую-либо строку, противоположную этому условию. – 7alhashmi