MySQL Family Tree



错误图像

对这些语法错误有任何想法吗?与外国密钥语法有关?不知道!我卸下了引擎= 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;

如果您以与发布的顺序相同的顺序运行

在第二个查询中,您有:

FOREIGN KEY personID REFERENCES Person(personID)

尚未创建。该人表是在下一个查询中创建的。

最新更新