2017-11-11 1 views
0

여러 개의 외래 키가 여러 테이블에 있습니다 (관계가 여러 개로 많음).MySQL이 여러 개의 외래 키를 사용하여 테이블 만들기

#creating t1 
CREATE TABLE t1 
(ID   INT    AUTO_INCREMENT   primary key, 
x1   VARCHAR(50) 
); 

#Creating t2 
CREATE TABLE t2 
(v1  VARCHAR(50), 
v2  VARCHAR(50), 
primary key (v1, v2) 
); 

#creating attended table 
CREATE TABLE t3 
(ID  INT, 
v1   VARCHAR(50), 
v2   VARCHAR(50), 
primary key (ID, v1, v2), 
foreign key(v1)     references t2(v1), 
foreign key(v2)     references t2(v2), 
foreign key(ID)     references t1(ID) 
); 

위 코드는 내 코드입니다. t1과 t2를 만들 때 오류가 발생하지 않습니다. 내가 만들려고 할 때, 나는 다음과 같은 코드를 얻을 T3 :

ERROR 1215 (HY000) : 외부 키는 다른 테이블의 전체 핵심 외래 키 제약

답변

0

를 추가 할 수 없습니다 - 당신을 FK로 그것의 절반을 사용할 수 없습니다.

t2에는 조합 된 기본 키가 있습니다. t3에서 fk를 참조 할 때 둘 다 필요합니다.

Why use multiple columns as primary keys (composite primary key) 복잡한 FK 만들기를 참조하십시오 SQL Server: adding foreign key on multiple columns 를 참조하거나 MySQL 용 Multiple-column foreign key in MySQL?

+0

좋아 참조하십시오. 그래서이 코드를 작성해야합니까? 외래 키 (v1, v2) 참조 t2 (v1, v2) – billyl320

+0

편집 됨 : 2 개의 관련 SO 답변이 추가되었습니다. –

+0

gotcha - 감사합니다! 코드가 실행 중입니다. – billyl320

관련 문제