| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> c.d.o.server -> Re: PK/FK and Locks
If your foreign key column is not indexed, Oracle locks the complete table. If the column is indexed only the affected rows are locked. Try creating an index .
Hth,
Sybrand Bakker, Oracle DBA
Gary Knopp <gknopp_at_ascend.com> schreef in berichtnieuws
8g1867$sdq_at_nntpa.cb.lucent.com...
>
>
> PK/FK and locks
>
> I create a Primary/Foreign key relationship between
> two tables.
>
>      T1
>  ===========
>  key(PK)  catg
>  ---            -----
>   1           Cars
>   2           Sports
>   3           Places
>
>
>      T2
>  ============
>  key(FK)  Values
>  -------       -------
>   1             Toyota
>   1             Camry
>   2             Baseball
>
>
>  + If UserA makes any change to table T2 then
>    userB cannot delete any records in T1 until
>    UserA commits changes.  This seems to be
>    true whether the FK in T2 has been modified
>    or not.
>
>    In the above example if UserA updates record field
>   'Camry' to 'FireBird' in table T2, UserB can't delete
>   T1 record 'Places'   until UserA commits, even though
>   no T2 record   references this key.  Why?
>
>    If the above is true, how can I inform the user that a delete
>    cannot be performed on T1 since changes have not
>    been committed on T2.  I don't want the user
>    sitting in a WAIT state forever.
>
>    Do I have to do a 'select for update' on every table
>    that has a FK constraint on this table?
>
>
>
>
Received on Thu May 18 2000 - 00:00:00 CDT
![]()  | 
![]()  |