회원테이블(회원번호) - 작물테이블, 다이어리테이블, 농사용어테이블

이렇게 크게 3개의 큰 테이블이 회원번호를 외래키로 사용하고있고

이 3개의 테이블은 외래키로 사용하는 회원번호와 다른 정보들을 합쳐서 기본키를  많은  다른 하위 테이블로 뿌려지고 있다.

그래서 회원탈퇴를 할 경우 관계를 생각해서 삭제해야되는데(관계를 맺었을 경우)

 만약 키를 가져다 쓰고있는 테이블보다 먼저 상위에 있는

테이블에서 삭제를 할 경우 관계로 인한 오류가난다.

그래서 하위테이블부터 삭제해 나가면서 상위까지 올라가야 한다.

프로시저 쿼리에는 회원번호 한개만 받았으므로 받은 회원번호 하나가지고 그와 연관된 모든 것들을 삭제하면된다.

예를 들어
delete DIARY_GROWING from DIARY where @MEM_NUM = DIARY.Mem_Num and DIARY_GROWING.D_Number(다이어리에 기본키를 가져다쓰는 외래키) = DIARY.Number(기본키)

위와 같이 하면 DIARY_GROWING 테이블에서 DIARY에 몇번 회원정보들이 다 날라 갈것이다. 이렇게

JOIN 연산을 통하여 하나하나 삭제하면된다.

당연히 위에처럼 하위테이블블 데이터들을 날렸으면 상위인 DIARY테이블에 회원정보도 날려주면 된다.

처음에 delete CROPS from CROP_ACCOUNT, aaa, bbb, ccc, ddd, eee where @MEM_NUM = CROPS.Mem_Num and ..........이런식으로 하여서 한번에 CROPS에 관련된 테이블을 날릴수 없나해서 시도해보았지만 안되어서

할수없이 테이블 하나당 한줄씩 추가해서 날려주었다.


'.NET > ADO.NET' 카테고리의 다른 글

특정 행 복사하기  (0) 2010.08.06
내장 프로시저  (0) 2010.08.04
다른컴퓨터로 DB 복사  (0) 2010.07.12
내장 프로시저(사용법)  (0) 2010.07.10
DB에 이미지 저장 / 로드 하기  (0) 2010.06.18
Posted by 아몰라