집 >데이터 베이스 >MySQL 튜토리얼 >기본 키가 아닌 열에 대한 외래 키를 만드는 방법은 무엇입니까?
질문:
다른 테이블의 기본 키가 아닌 열을 가리키는 외래 키를 생성하여 참조 무결성을 유지하는 방법은 무엇입니까?
정답:
외래 키를 생성할 때 일반적으로 기본 키를 참조하는 것이 권장되지만 특정 조건에서는 기본 키가 아닌 키를 가리키는 외래 키를 생성할 수도 있습니다.
해결책:
기본 키가 아닌 키를 가리키는 외래 키를 생성하려면 참조 테이블의 대상 열에 고유 제약 조건을 적용해야 합니다. 이는 데이터 무결성을 보장하려면 열의 값이 고유해야 함을 의미합니다.
예:
다음 테이블 구조를 고려하세요.
<code class="language-sql">CREATE TABLE table1 ( ID INT NOT NULL IDENTITY(1,1) PRIMARY KEY, AnotherID INT NOT NULL, SomeData VARCHAR(100) NOT NULL ); CREATE TABLE table2 ( ID INT NOT NULL IDENTITY(1,1) PRIMARY KEY, AnotherID INT NOT NULL, MoreData VARCHAR(30) NOT NULL, CONSTRAINT fk_table2_table1 FOREIGN KEY (AnotherID) REFERENCES table1 (AnotherID) );</code>
이 예에서 table1의 AnotherID 열은 기본 키가 아닙니다. 그러나 AnotherID 열을 사용하여 table2와 table1 사이에 외래 키 관계를 생성할 수 있는 고유 제약 조건이 있습니다.
대안:
기본 키가 아닌 열에 고유 제약 조건을 생성할 수 없는 경우 대신 참조된 테이블의 기본 키를 외래 키로 사용하는 것이 좋습니다. 이 방법은 더 강력한 데이터베이스 무결성을 보장하므로 일반적으로 권장됩니다.
위 내용은 기본 키가 아닌 열에 대한 외래 키를 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!