Oracle Database 11g Enterprise Edition 릴리스 11.2.0.1.0이 있습니다. 부모 테이블 t1과 t2에 t1 (col1)을 참조하는 외래 키가 있습니다. 제가 궁금해하는 점은 잠금이있는 이유입니까? 오류 대신 부모 테이블에서 삭제시 잠금
세션 ... 내가 무슨 짓을했는지 확인하시기 바랍니다 1
SQL> create table t1(col1 char(1), primary key(col1));
Table created.
SQL> insert into t1 values('1');
1 row created.
SQL> insert into t1 values('2');
1 row created.
SQL> insert into t1 values('3');
1 row created.
SQL> insert into t1 values('4');
1 row created.
SQL> insert into t1 values('5');
1 row created.
SQL> commit;
Commit complete.
SQL> create table t2(col1 char(1), col2 char(2), foreign key(col1) references t1(col1));
Table created.
SQL> insert into t2 values('1','0');
1 row created.
SQL> commit;
Commit complete.
SQL> update t2 set col2='9'; --not committed yet!
1 row updated.
세션 2
SQL> delete from t1; -- Lock happens here!!!
세션 1
SQL> commit;
Commit complete.
세션 2
delete from t1 -- The error occurs after I commit updating query in session 1.
*
ERROR at line 1:
ORA-02292: integrity constraint (KMS_USER.SYS_C0013643) violated - child record found
왜 이런 일이 일어 났는지 설명 할 수 있습니까?
조언 해 주셔서 감사합니다 ... 내가 잠금 장치에 대해 읽을 수있는 참조가 있습니까? – KIM
[데이터베이스 개념 설명서] (http://docs.oracle.com/cd/E11882_01/server.112/e25789/consist.htm#i5704)로 시작하는 것이 좋습니다. –