2013-07-07 4 views
0
+--------+--------+ 
    |A_id |A_desc | 
    +--------+--------+ 

    table B: 
    +--------+--------+ 
    |B_id |B_desc | 
    +--------+--------+ 

    table c: 
    +--------+--------+ 
    |A_id |B_id | 
    +--------+--------+ 

"B_id"값을 가져 와서 테이블을 삭제하지 않고 c 테이블과 1 행을 삭제하려면 누구든지이 문제를 해결할 수 있습니까?SQL 삭제 외래 키

+0

어떤 RDBMS를 사용하고 있습니까? 테이블 'A'가 수정되는 이유는 무엇입니까? 트리거가 있습니까? – alzaimar

+0

표 A는 다른 표에 의존하지 않습니다. 팀에 의해 설정된 트리거가 없으면 테이블 B와 C에서 문제없이 삭제할 수 있어야합니다. – Tom

답변

1

트리거를 사용하여 수행 할 수 있지만 다른 코드를 사용하면됩니다.

delete from B where B_id not in (select B_id from C) 
: C의 다른 기록은 무엇 당신이 할 수있는 같은 것을 실행

테이블 B.를 가리 수 있기 때문에 당신이 트리거/코드를 사용 할 경우에도

주, 당신은 예외를 얻을 수 있습니다

삭제 실행 후

+0

에 의해 해결 된 "삭제 캐스케이드"모두 감사합니다 – al1991