无法创建外键MySQLworkbench

时间:2017-01-05 17:20:32

标签: mysql foreign-keys relational-database primary-key

我需要帮助在两个表之间创建一个外键由于某种原因我反复被告知客户编号在它出现时不存在

这是第一个表的代码

SET FOREIGN_KEY_CHECKS = 0;
DROP TABLE IF EXISTS Customer;
CREATE TABLE Customer
(
    CustomerNumber int NOT NULL,
    CustomerName varchar(255),
    CustomerAddress varchar(255),
    CustomerPhoneNumber varchar(255),
    JoinDate varchar(255),
    PetName varchar(255),
    PayScheme varchar(255),
    PremiumPayDate varchar(255),
    PRIMARY KEY (CustomerNumber)
    );

这是第二个

的代码
DROP TABLE IF EXISTS Policies;    
CREATE TABLE Policies
(
    PolicyID int NOT NULL,
    PolicyNumber int NOT NULL,
    PetType varchar(255),
    EffectiveDate varchar(255),
    PRIMARY KEY (PolicyID),
        CONSTRAINT fk_CustomerNumber
FOREIGN KEY (CustomerNumber) 
REFERENCES Customer(CustomerNumber)
);

我一再被告知关键列客户编号不存在

1 个答案:

答案 0 :(得分:0)

Policies表缺少customerNumber列。您需要在声明foreign key约束之前添加它。试试这个:

DROP TABLE IF EXISTS Policies;    
CREATE TABLE Policies
(
    PolicyID int NOT NULL,
    PolicyNumber int NOT NULL,
    PetType varchar(255),
    CustomerNumber int NOT NULL,  --Added here
    EffectiveDate varchar(255),
    PRIMARY KEY (PolicyID),
        CONSTRAINT fk_CustomerNumber
FOREIGN KEY (CustomerNumber) 
REFERENCES Customer(CustomerNumber)
);