2017-02-28 5 views
-1

Errors ImageMySQL 패밀리 트리

이러한 구문 오류에 대한 의견이 있으십니까? 외래 키 구문과 관련이 있습니까? 몰라! ENGINE = INNODB를 제거했습니다. 하지만 여전히 작동하지 않습니다.

DROP TABLE IF EXISTS Marriage; 
CREATE TABLE Marriage (
    marriageID int NOT NULL, 
    PRIMARY KEY(marriageID), 
    date DATE, 
    place varchar(100) 
); 

상단 하나는 잘 작동 - 진짜 문제는 다음 중 하나의 외래 키로 시작

DROP TABLE IF EXISTS MarriagePerson; 
CREATE TABLE MarriagePerson (
    marriagePersonID int NOT NULL, 
    marriageID int, 
    personID int, 
    PRIMARY KEY(marriagePersonID), 
    FOREIGN KEY marriageID REFERENCES Marriage(marriageID), 
    FOREIGN KEY personID REFERENCES Person(personID) 
); 

DROP TABLE IF EXISTS Person; 
CREATE TABLE Person (
    personID int NOT NULL, 
    PRIMARY KEY(personID), 
    firstName varchar(100), 
    lastName varchar(100), 
    gender ENUM(male, female, nonBinary), 
    birthDate DATE, 
    birthPlace varchar(100), 
    deathDate DATE, 
    deathPlace varchar(100), 
    causeOfDeath varchar(100), 
    note varchar(1000) 
) ENGINE=InnoDB; 

DROP TABLE IF EXISTS Parent; 
CREATE TABLE Parent (
    parentID int NOT NULL, 
    PRIMARY KEY(parentID), 
    FOREIGN KEY personID int, 
    FOREIGN KEY parentPersonID int, 
    relationship ENUM(sperm, egg) 
) ENGINE=InnoDB; 
+0

'Parent' 테이블에 외래 키가 있지만 아무 것도 참조하지 않습니다. –

+1

그런 구문 오류가 무엇입니까? – Shadow

+0

오류를 게시 할 수 있습니까? – Krishnakumar

답변

1

당신이 게시 한 것과 같은 순서를 실행하는 경우,

두 번째 쿼리에는 다음이 포함됩니다.

FOREIGN KEY personID REFERENCES Person(personID) 

아직 생성되지 않은 쿼리입니다. Person 테이블은 다음 쿼리에서 생성됩니다.

+0

넌 정말 대단해, ​​너 !!! : D – Ruth

+0

도와 줘서 기뻐 !! 이것을 답변으로 표시하여이 주제를 닫습니다. – Krishnakumar