数据库发出无法解决的错误

问题描述 投票:0回答:1

我正在尝试为我的架构创建一组表,并且我使用了以下代码。但是我收到了一个错误。我是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“外键约束形成错误”)

有人能帮助我吗?

mysql sql phpmyadmin
1个回答
2
投票

这就是问题:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.