mysql - 无法创建外键 MySQL Workbench

标签 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)
);

我反复被告知关键列“客户编号”不存在

最佳答案

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

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)
);

关于mysql - 无法创建外键 MySQL Workbench,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41491009/

相关文章:

php - 根据类别 ID 显示数据库中的产品

mysql - 如何将SQL Server程序转换为MySQL?

sql - 外键列允许插入不在引用列中的值

mysql - 差点搞乱了我在 heroku 上的数据库 : mysql error on db:pull

mysql - 外键:简单查询不起作用

mysql - 如何从我的 MySQL 表中删除约束?

sql - 在 RDB 模式中,什么时候将列组合成单个分隔列会更好?

mysql - 在 MySQL 中,为什么我必须定义外键关系?

MySQL 连接 n 到 n 个关系表,保留 NULL 值

python - 在通过 DataNitro 将行传递到 Excel 之前,使用 fetchall() 过滤 mySQL 数据