Re: Integrity constraint

From: Gerard H. Pille <ghp_at_skynet.be>
Date: Tue, 03 Feb 2009 18:23:55 +0100
Message-ID: <49887dab$0$2870$ba620e4c_at_news.skynet.be>



xhoster_at_gmail.com schreef:
> "Jaap W. van Dijk" <j.w.vandijk_at_hetnet.nl> wrote:

>> On Feb 3, 9:39=A0am, vm22 <vivekmarw..._at_gmail.com> wrote:
>>> Hi,
>>>
>>> I have a developer who has written the following code to delete some
>>> records:
>>>
>>> DELETE FROM x
>>> WHERE id NOT IN (SELECT id
>>> FROM y)
>>> AND id NOT IN (SELECT id
>>> FROM z);
>>>
>>> ORA-02292: integrity constraint (Y_FK) violated - child record found
>>>
>>> When there is already a clause in my delete to state do not delete
>>> records that are found in table Y, why do I get the integrity
>>> constraint error message?
>> Can id be null in y and z? In that case you are comparing id in x with
>> a set that contains a null. For an id in x that is different from the
>> not null id's in y and z, the NOT IN condition will yield a UNKNOWN
>> and not a TRUE.
>>
>> Solution: extend SELECT id FROM y/z with AND id IS NOT NULL
> 
> Another thought.  What if another process inserts a record into y or z
> after the delete statement was started?  The x is an orphan at the time the
> transaction was started, but is no longer one.  Could that scenario give
> an integrity error rather than a serialization error?
> 
> Xho
> 

Is it possible to insert child records when the parent is being deleted? Received on Tue Feb 03 2009 - 11:23:55 CST

Original text of this message