2017-02-28 4 views
-1

Errors ImageFamily Tree MySQL

Toute idée de ces erreurs de syntaxe? Lié à la syntaxe FOREIGN KEY? Aucune idée! J'ai enlevé le MOTEUR = INNODB; lignes mais ça ne marche toujours pas.

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

Ce haut un fonctionne très bien - la peine réelle commence par la suivante de clés étrangères:

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

Vous avez des clés étrangères dans la table 'Parent', mais elles ne font référence à rien. –

+1

Et quelles sont ces erreurs de syntaxe? – Shadow

+0

Pouvez-vous poster les erreurs? – Krishnakumar

Répondre

1

Si vous exécutez dans le même ordre que vous avez posté,

dans la deuxième requête que vous avez:

FOREIGN KEY personID REFERENCES Person(personID) 

Ce qui est pas encore créé. La table Person est créée dans la requête suivante.

+0

Vous êtes génial, MERCI !!! : D – Ruth

+0

Heureux d'aider !! Clôturons ce sujet en le marquant comme réponse. – Krishnakumar