2017-02-28 8 views
-1

Errors ImageMySQLファミリーツリー

これらの構文エラーについてご意見はありますか? FOREIGN KEY構文に関連していますか?考えていない! ENGINE = INNODBを削除しました。それでもまだ動作していません。

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

トップ1は、細かい動作すること - 本当のトラブルは、次のいずれかの外部キーで始まります。

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

あなたが投稿したのと同じ順序でそれを実行している場合は、

2番目のクエリでは、持っている:まだ作成されていない

FOREIGN KEY personID REFERENCES Person(personID) 

を。 Personテーブルは、次のクエリで作成されます。

+0

あなたは素晴らしいです、ありがとうございます! :D – Ruth

+0

喜んで助けてください!これを答えとしてマークして、このトピックを閉じましょう。 – Krishnakumar

関連する問題