database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
ㆍDB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
DB2 Q&A 1276 게시물 읽기
No. 1276
외래키 제약조건 기능 오류에 대해..
작성자
db2멍
작성일
2007-03-09 01:36
조회수
7,061

아래와 다른내용의 질문이라 새로운 글로 올립니다.


udb 7.2 for linux 를 사용하고 있습니다.


테이블 구조는...............

CREATE TABLE PART_USER

(

  P_ID INTEGER NOT NULL,

  NAME VARCHAR(20) NOT NULL,

                      ::

                      ::

  FOREIGN KEY (P_ID) REFERENCES PART ON DELETE CASCADE ON UPDATE NO ACTION

)

IN DATA_TS;





CREATE INDEX IDX_PART_USER ON PART_USER (P_ID ASC) ALLOW REVERSE SCANS;


위와같이 생성되어있습니다.


그런데 위와같이 외래키가 설정된 테이블들이 많이 있는데(30개)


PART의 row를 삭제할때 PART_USER에 삭제가 전파가 안되어서 고아로 남는 문제가 생기는 경우가 있다는 겁니다.


전파가 잘되서 지워지는 테이블도 있고 덩그러니 부모만 지워지고 자식은 남는 테이블도 있고...


분명 PART의 p_id = 100 값이고 PART_USER의 p_id도 100값인 row가 몇개있는지도 확인하고 

(delete from part where p_id=100) 해서 삭제후

(select from part_user where p_id=100) 해보면 row가 그대로 출력된다는 겁니다. ㅡㅡ;;


터미널에서 쿼리를 실행했으니 delete 끝나자마자 오토커밋 되었겠지요.. ㅡㅡ;;




테이블 생성시 몇번씩 재확인하고 스크립트로 돌려서 생성한거라 외래키 조건을 빼먹은 문제는 없습니다.


또한 테이블 생성후 레코드 몇개씩 추가해서 테스트 시에는 전체가 잘되었는데


테이블들에 데이터가 몇만건 이상씩 쌓이니까 잘되던게 어느날 몇개의 테이블에서 부모잃은 고아 데이터가 남아서


이상한 동작을 야기시킵니다.


에러가 리턴되지도 않고 쿼리도 성공했다고 나오구요.. ㅡㅡ;;


이거 외래키 제약조건 부분이 왜 이렇게 불안정하게 도는건지요.. 이건뭐 무결성 유지를 믿을수가 없어서 ㅡㅡ;;


부모 테이블 데이터 삭제할때 일일이 부모자식관계를 찾아다니면서 지워줘야 할 판입니다...


저만 그러는건지.. fixpack 관련 변경사항에도 이런 문제는 못봤던거라 당황스럽네요..


제발 도움말씀 부탁드립니다.

[Top]
No.
제목
작성자
작성일
조회
1279MPP 머신에서 db2 파티션 구성에 대한 질문 [4]
db2man
2007-03-20
7326
1278답답한 마음에 글을 올립니다..오라클에서 테이블의 정보를 보려고 작성한건데 이번에 DB2를 사용하는대 잘 모르겠네여......아시는 분은 컨버전좀 부탁드립니다. [1]
튼솔
2007-03-10
7721
1277데이터베이스간 자료공유가 가능한가요.? [1]
최홍창
2007-03-09
7804
1276외래키 제약조건 기능 오류에 대해..
db2멍
2007-03-09
7061
1275delete 서브쿼리 실행 횟수에 대해.. [1]
db2멍
2007-03-09
8020
1274db2 archive log 명령어는 뭐하는 기능인지요 [1]
유성현
2007-03-08
7512
1273db2flsn 명령어에 대해서 질문입니다. [1]
db2초보
2007-03-08
6810
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.038초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다