2011-09-27 2 views
-2

에서 M 관계 구문 오류 나는 (MySQL 용)이 SQL 있습니다N : 코드

create table apartmentcaretakers 
(
apartmentID int, 
caretakerID int, 
PRIMARY KEY (apartmentID, caretakerID), 
FOREIGN KEY (apartmentID) REFERENCES apartments(apartmentID), 
FOREIGN KEY (caretakerID) REFERENCES caretakers(caretakerID) 
)engine = innodb; 

오류를 그 나는 고양이 : '참조 아파트 (apartmentID), 외래 키 caretakerID 참조의 관리인 근처 SQL 구문 오류 '

이것은 내 부분에서 약간의 실수가 있지만, 누군가 지적 할 수 있습니까?

편집 : 일부 코딩 및 재방송 후 오류는 1064입니다. 왜 이것이 크게 도움이되지 않는지 이해할 수 있습니다. 넓은 스펙트럼 오류입니다.

+0

너 도움이 ... – Yilmas

답변

0

저 또한 잘했습니다.

참조 된 테이블에서도 INNODB 엔진을 사용해야합니다. 그것을 확인하려면 다음 쿼리를 사용 SHOW TABLE STATUS WHERE Name = 'xxx' 내 뇌의 끝없는 파도를 통해 다이빙에 들어갑니다, 그리고 어떤 사람은 어쨌든 내 괄호 : 그러나 들으을 훔친 것을 발견 한 후이 문제는, 스스로 그것을 해결

mysql> CREATE TABLE apartments (
    -> apartmentID int PRIMARY KEY NOT NULL) ENGINE = innodb; 
Query OK, 0 rows affected (0.01 sec) 

mysql> CREATE TABLE caretakers (
    -> caretakerID int PRIMARY KEY NOT NULL) ENGINE = innodb; 
Query OK, 0 rows affected (0.02 sec) 

mysql> CREATE TABLE apartmentcaretakers (
    -> apartmentID int, 
    -> caretakerID int, 
    -> PRIMARY KEY (apartmentID, caretakerID), 
    -> FOREIGN KEY ac_fk_apartments_id (apartmentID) REFERENCES apartments (apartmentID), 
    -> FOREIGN KEY ac_fk_caretakers_id(caretakerID) REFERENCES caretakers (caretakerID) 
    ->) ENGINE = innodb; 

Query OK, 0 rows affected (0.02 sec) 
+0

오류가 변경되지 않았습니다 ... 여전히 1064 ... – Yilmas

+0

흠. 그래서 처음 두 테이블 ("아파트"와 "관리인")을 만들 수 있습니까? 그리고 그들은 INNODB 엔진을 가지고 있습니까? mysql> SHOW ENGINES'는 InnoDB를 올바르게 나열합니까? 그냥 추측 :) 두 참조 된 테이블의 "DESC"출력을 제공 할 수 있습니까? –

관련 문제