Can';t在Mysql中创建表

Can';t在Mysql中创建表,mysql,Mysql,我有这些表,但只创建了 保险单类型 历史文化时代 区域 参考文献 组织机构 地理区域 其他人给了我错误,比如 "Cant create table" on Loan_Item, "Reference_Id dont exist" on Historical_Era_Reference "error 1064 (4200)" on Loan 尝试先创建表,然后再添加外键。上面的查询有很多问题 您正在引用一个尚不存在的表:“外键(Geo\u Area\u Id)引用地理区域(Geo\u Area

我有这些表,但只创建了

  • 保险单类型
  • 历史文化时代
  • 区域
  • 参考文献
  • 组织机构
  • 地理区域
  • 其他人给了我错误,比如

    "Cant create table" on Loan_Item,
    "Reference_Id dont exist" on Historical_Era_Reference
    "error 1064 (4200)" on Loan
    


    尝试先创建表,然后再添加外键。

    上面的查询有很多问题

  • 您正在引用一个尚不存在的表:
    “外键(Geo\u Area\u Id)引用地理区域(Geo\u Area\u Id))”
    首先创建表,然后更新外键

  • 有很多语法错误-缺少逗号和双括号。我建议学习如何识别它们,而不是一个接一个地指出它们,例如,我建议使用IDE。我个人在MySQL工作台中测试语句

  • 查询可能会产生错误150,原因有很多。请参阅关于主键为FK的典型错误的非常好的摘要


  • 您会收到什么错误消息?首先创建不带外键的表。一旦你创建了表,改变表以添加外键。您在Geo_Area_Id之后的Items表中遗漏了一个“,”,这就是为什么它会显示这样的错误,正如其他人所说的,您可以尝试手动添加约束,并确保您正在使用InnoDB Engine.voted up,以便在进一步的情况下做出反应。欢迎来到SO。嘿,伙计们,谢谢你们的贡献,他们真的很有帮助。你甚至睁开我的眼睛让我集中注意力。我犯的大多数错误都是因为打字错误,缺少“,”,有额外的“)”和没有声明主键。我希望这也能帮助别人~THANKS@user2357469你可以编辑你的答案,粘贴你最后的正确代码。另外,如果我的建议对你有帮助,请接受我的回答。
    CREATE TABLE Insurance_Policy_Type (
    Insurance_Policy_Type_Id INT (4),
    Insurance_Policy_Type_Name VARCHAR (30),
    PRIMARY KEY (Insurance_Policy_Type_Id));
    
    
    CREATE TABLE Historical_Era (
    Historical_Era_Id INT (4),
    Historical_Era_Name VARCHAR (30),
    PRIMARY KEY (Historical_Era_Id));
    
    
    CREATE TABLE Reference (
    Reference_Id INT (4),
    Reference_Name VARCHAR (30),
    Author VARCHAR (30),
    PRIMARY KEY (Reference_Id));
    
    
    CREATE TABLE Region (
    Region_Id INT (4),
    Region_Name VARCHAR (30),
    PRIMARY KEY (Region_Id));
    
    CREATE TABLE Organisation (
    Organisation_Id INT (4),
    Organisation_Name VARCHAR (30),
    PRIMARY KEY (Organisation_Id));
    
    CREATE TABLE Items (
    Item_Id INT (4),
    Item_Name VARCHAR (30),
    Description VARCHAR (30),
    Insurance_Policy_Type_Id INT (4),
    Geo_Area_Id INT (4)
    PRIMARY KEY (Item_Id),
    FOREIGN KEY (Insurance_Policy_Type_Id) REFERENCES Insurance_Policy_Type(Insurance_Policy_Type_Id),
    FOREIGN KEY (Geo_Area_Id) REFERENCES Geographic_Area(Geo_Area_Id));
    
    CREATE TABLE GeoArea_HistEra (
    Geo_Area_Id INT (4),
    Historical_Era_Id INT (4),
    FOREIGN KEY (Geo_Area_Id) REFERENCES Geographical_Area(Geo_Area_Id)),
    FOREIGN KEY (Historical_Era_Id) REFERENCES Historical_Era(Historical_Era_Id));
    
    CREATE TABLE Historical_Era_Reference (
    References_Id INT (4),
    Historical_Era_Id INT (4),
    FOREIGN KEY (Reference_Id) REFERENCES Reference (Reference_Id),
    FOREIGN KEY (Historical_Era_Id) REFERENCES Historical_Era (Historical_Era_Id));
    
    
    CREATE TABLE Loan_Item (
    Item_Id INT (4),
    Loan_Id INT (4),
    FOREIGN KEY (Item_Id) REFERENCES Items(Item_Id),
    FOREIGN KEY (Loan_Id) REFERENCES Loan(Loan_Id));
    
    CREATE TABLE Geographic_Area (
    Geo_Area_Id INT (4),
    Geo_Area_Name VARCHAR (30),
    Region_Id INT (4),
    PRIMARY KEY (Geo_Area_Id),
    FOREIGN KEY (Region_Id) REFERENCES Region (Region_Id));
    
    CREATE TABLE Loan (
    Loan_Id INT (4),
    Item_Id INT (4)
    Organisation_Id INT(4)
    Loan_Start DAY,
    Loan_End DAY
    FOREIGN KEY (Organisation_Id) REFERENCES Organisation (Organisation_Id),
    FOREIGN KEY (Item_Id) REFERENCES Items (Item_Id));