gpt4 book ai didi

MySQL: Cannot add foreign key constraint in school project 报错

转载 作者:行者123 更新时间:2023-11-30 22:03:50 24 4
gpt4 key购买 nike

我正在为学校项目构建一个非常基本的数据库,但在 MySQL 中出现“无法添加外键约束”错误。在过去的一天里,我一直在为这个问题摸不着头脑,阅读了所有相关的帖子,但一直无法弄清楚。

这是我项目的前两个表:

CREATE TABLE CUSTOMER (
CUST_ID INTEGER NOT NULL AUTO_INCREMENT UNIQUE,
CUST_LNAME VARCHAR(25) NOT NULL,
CUST_FNAME VARCHAR(25) NOT NULL,
CUST_INITIAL CHAR(1),
CUST_STREET_NO VARCHAR(6),
CUST_STREET_NAME VARCHAR(25),
CUST_APT_NO VARCHAR(10),
CUST_CITY VARCHAR(25),
CUST_STATE CHAR(2),
CUST_ZIP_CODE CHAR(5),
CUST_HOME_AC CHAR(3),
CUST_HOME_PHONE CHAR(8),
PRIMARY KEY (CUST_ID))
ENGINE = InnoDB;

CREATE TABLE INVOICE (
INVOICE_ID INTEGER NOT NULL AUTO_INCREMENT UNIQUE,
CUST_ID INTEGER NOT NULL,
INV_DATE DATE NOT NULL,
SPECIAL_HANDLING VARCHAR(35),
PRIMARY KEY (INVOICE_ID),
FOREIGN KEY (CUST_ID) REFERENCES CUSTOMER ON UPDATE CASCADE)
ENGINE = InnoDB;

我确定这是我所缺少的 super 简单的东西。有什么想法吗?

最佳答案

您缺少要在外键约束定义中引用的列。

使用:

FOREIGN KEY (CUST_ID) REFERENCES CUSTOMER(CUST_ID) ON UPDATE CASCADE)

代替

FOREIGN KEY (CUST_ID) REFERENCES CUSTOMER ON UPDATE CASCADE)

因此,create table 变为:

CREATE TABLE INVOICE (
INVOICE_ID INTEGER NOT NULL AUTO_INCREMENT UNIQUE,
CUST_ID INTEGER NOT NULL,
INV_DATE DATE NOT NULL,
SPECIAL_HANDLING VARCHAR(35),
PRIMARY KEY (INVOICE_ID),
FOREIGN KEY (CUST_ID) REFERENCES CUSTOMER(CUST_ID) ON UPDATE CASCADE)
ENGINE = InnoDB;

关于MySQL: Cannot add foreign key constraint in school project 报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42420946/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com