2013-01-22 4 views
1

이상한 점;두 테이블을 서로 참조하는 중

두 테이블 A와 B가있는 경우;

A 
ID int (PK) 
B_ID int (FK) 

B 
ID int (PK) 
A_ID int (FK) 

B. A는 B에 대한 참조 A. A_ID B_ID 및 비 - 널 (NULL)에 대한 참조가 있습니다.

어떻게 이러한 테이블에 행을 추가 할 수 있습니까? 그러나 B에 행을 추가하지 않고 A에 행을 추가 할 수는 없으며, 그 반대의 경우도 가능합니다.

A 
ID B_ID 
1 100 

B 
ID A_ID 
100 1 

그럼 분명히 괜찮습니다. 이 데이터를 삽입하려면 먼저 데이터 무결성을 비활성화해야합니다. 아니면 어떻게하면이 두 행을 한 번에 추가 할 수 있습니까?

제목에 사과드립니다.이게 뭐라 불리는 지 전혀 모르겠거나 직접 보았습니다.

+3

"순환 참조 무결성"이라고 할 수 있습니다. FK가 양쪽 방향을 가르키는 목적은 무엇입니까? –

+0

예를 들어 일대일 관계를 시행하는 데 사용할 수 있습니다. 내가 말했듯이, 그것이 할 수 있는지를 보는 것이 단지 호기심입니다. – Barguast

답변

2

MSDN에 잘 설명 글이 있습니다 :

http://blogs.msdn.com/b/sqlazure/archive/2010/07/01/10033575.aspx

및 위키 피 디아 다른 하나

http://en.wikipedia.org/wiki/Circular_reference

모두 살펴보고주의 깊게 읽어가.

희망이 있으면 도움이됩니다.

건배

+0

적어도 정확한 용어를 주었기 때문에 대답으로 표시되었습니다. 감사. – Barguast

+0

그 이야기를 듣고 기쁘게 생각합니다. 천만에요... :) – Rikki

관련 문제