数据库发出无法修复的错误

时间:2019-02-25 21:53:30

标签: mysql sql phpmyadmin

我正在尝试为我的架构创建一组表,并且使用了以下代码。但是我遇到了错误。我是mysql新手,将不胜感激。

create table AutoSeller;
    create table County(
        CountyID INT,
        CountyName varchar(25),
        PRIMARY KEY (CountyID)
        );

create table City (
    CityID int,
    CityName varchar(50),
    CountyID int,
    FOREIGN KEY (CountyID) REFERENCES county(CountyID),
    PRIMARY KEY (CityID)
    );

 CREATE table Postcode(
    PostcodeID int,
    Postcode varchar(8),
    CityID int,
    FOREIGN KEY(CityID) REFERENCES city(CityID),
    PRIMARY KEY (PostcodeID)
    );

create table Buyer(
    BuyerID int,
    BuyerFN varchar(15),
    BuyerLN varchar(15),
    CountyID int,
    CityID int,
    Address varchar(30),
    PostcodeID int,
    ContactNr varchar(15),
    FOREIGN KEY (PostcodeID) REFERENCES postcode (PostcodeID),
    FOREIGN KEY (CityID) REFERENCES city (CityID),
    FOREIGN KEY (CountyID) REFERENCES county (CountyID),
    PRIMARY KEY (BuyerID)
    );

create table Seller(
    SellerID int,
    SellerFN varchar(15),
    SellerLN varchar(15),
    CountyID int,
    CityID int,
    Address varchar(30),
    PostcodeID int,
    ContactNr varchar(15),
    FOREIGN KEY (PostcodeID) REFERENCES postcode (PostcodeID),
    FOREIGN KEY (CityID) REFERENCES city (CityID),
    FOREIGN KEY (CountyID) REFERENCES county (CountyID),
    PRIMARY KEY (SellerID)
    );

create table Make(
    CarMakeID int,
    CarMake varchar(15),
    PRIMARY KEY (CarMakeID)
    );

create table  Colour(
    CarColourID int,
    CarColour varchar(10),
    PRIMARY KEY (CarColour)
    );

create TABLE Fuel_type(
    CarFuelID int,
    CarFuel varchar(10),
    PRIMARY KEY (CarFuelID)
    );

create table Body(
    CarBodyID int,
    CarBody varchar (15),
    PRIMARY KEY (CarBodyID)
    );

CREATE TABLE car(
    CarID int,
    CarReg varchar(10),
    CarMakeID int,
    CarModel varchar(15),
    CarColourID int,
    CarBodyID int,
    CarFuelID int,
    CarAge int,
    CarEngine int,
    CarMileage int,
    BuyerID int,
    SellerID int,
    PRIMARY KEY (CarID),
    FOREIGN KEY (CarMakeID) REFERENCES make (CarMakeID),
    FOREIGN KEY (CarColourID) REFERENCES colour (CarColourID),
    FOREIGN KEY (CarFuelID) REFERENCES fuel_type (CarFuelID),
    FOREIGN KEY (BuyerID) REFERENCES buyer (BuyerID),
    FOREIGN KEY (SellerID) REFERENCES seller (SellerID)
    );

我刚刚开始学习mySql,我正在为这个错误而苦苦挣扎。

  

1005-无法创建表autoseller.car(错误号:150“外键约束格式不正确”)

有人可以帮我吗?

1 个答案:

答案 0 :(得分:2)

这是问题所在

create table  Colour(
    CarColourID int,
    CarColour varchar(10),
    PRIMARY KEY (CarColour)
    );

主键应该是CarColourID,而不是CarColour。您收到的错误是因为必须索引外键中引用的列。由于您没有将CarColourID用作主键,因此它没有索引。