2016-11-10 1 views
1

나는 규칙을 배우는 동안 여전히 매우 새롭기 때문에 인내심을 가지고 있습니다. mysql 스크립트에 문제가 있습니다. 매우 일반적인 1215 오류가 발생합니다 (외래 키를 만들 수 없음).오류 1215 외래 키 제약

이미 데이터 유형을 검사 했으므로 외래 키가 기본 키를 참조하며 여전히 기본 키를 참조하지 않습니다. 일하고있어.

The script. Issue is with the two final foreign keys

답변

1

다음과 같이 선언이어야합니다 :

먼저 외래 키를 선언해야합니다

Create table(id ... , foreignKEY INT NOT NULL, 
Constraint FOREIGN KEY(foreignKEY) REFERENCES table_refered(it primary key));  

// foreignKEY-을 선언 한 후 다음 컬럼으로 첫 번째 선언하고 있어야합니다 그것으로 FOREIGN KEY GOOD LUCK.

0

방금 ​​참조 된 테이블과 열에 대한 구문을 실수로 변경했습니다.

당신은 예를 들어 쓴 :

foreign key (rm_id) references roomate.rm_id, 

그것은해야한다 :

foreign key (rm_id) references roomate(rm_id), 

구문은 여기에 설명되어 있습니다 : http://dev.mysql.com/doc/refman/5.7/en/create-table-foreign-keys.html

+0

감사합니다. –

0

당신의 실수 PERCENTAGE 테이블에 참조 key를 할당 할 때. 참조 키는 이와 같아야합니다. 대신이의

FOREIGN KEY (RM_ID) REFERENCES ROOMMATE(RM_Id) 
FOREIGN KEY (ITM_Id) REFERENCES ITEM(ITM_Id) 

는 :

FOREIGN KEY (RM_ID) REFERENCES ROOMMATE.RM_Id 
FOREIGN KEY (ITM_Id) REFERENCES ITEM.ITM_Id 
0

난 당신이 기본 키/고유 제한 조건에 이름을 할당하지 않은 통지하고 당신도 당신의 외래 키에서이를 생략 할 수 있습니다. 또한 간단한 (단일 열) 키의 경우 열 선언과 함께 인라인으로 선언 할 수 있습니다. snipped 예 :

CREATE TABLE ITEM (ITM_ID INT(3) NOT NULL UNIQUE); 

CREATE TABLE PERCENTAGE (ITM_ID INT(3) NOT NULL REFERENCES ITEM (ITM_ID)); 
관련 문제