Hello.
I'm not sure about CONSTRAINT so much, then this may be just my
misunderstanding ...

Reading page of Reference manual for CONSTRAINT clause, I found
questionable part in "Referential actions".
http://db.apache.org/derby/docs/dev/ref/rrefsqlj13590.html

Questionable part is as next.

==============
The update rule applies when a row of either the parent or dependent
table is updated. The choices are NO ACTION and RESTRICT.

<snip>

If the update rule is NO ACTION, Derby checks the dependent tables for
foreign key constraints /after/ all deletes have been executed but
/before/ triggers have been executed. If any row in a dependent table
violates a foreign key constraint, the statement is rejected.

<snip>

The delete rule applies when a row of the parent table is deleted and
that row has dependents in the dependent table of the referential
constraint. If rows of the dependent table are deleted, the delete
operation on the parent table is said to be /propagated/ to the
dependent table. If the dependent table is also a parent table, the
action specified applies, in turn, to its dependents.
==============


What I'm not sure is next sentence in above.
==============
If the update rule is NO ACTION, Derby checks the dependent tables for
foreign key constraints */after/ all deletes* have been executed but
/before/ triggers have been executed. If any row in a dependent table
violates a foreign key constraint, the statement is rejected.
==============

I'm not sure why is "after all deletes" for "update".
I think this may be mistake ....

Best regards.

-- 
/*

        Tomohito Nakayama
        [EMAIL PROTECTED]
        [EMAIL PROTECTED]
        [EMAIL PROTECTED]

        Naka
        http://www5.ocn.ne.jp/~tomohito/TopPage.html

*/ 


Reply via email to