gpt4 book ai didi

MySQL #1215 问题

转载 作者:行者123 更新时间:2023-11-30 21:45:40 24 4
gpt4 key购买 nike

在我的数据库中创建此表时,我一直遇到问题。问题是:

Error:1215 Cannot add foreign key constraint.

这是我要制作的表格:

创建表客户(customer_reference int UNIQUE AUTO_INCREMENT,主键(customer_reference),名字 VARCHAR(20),姓 VARCHAR(20),联系 VARCHAR(15),电子邮件 VARCHAR(50),构建 VARCHAR(5),道路 VARCHAR(40),城市 VARCHAR(30),邮政编码 VARCHAR(7),县 VARCHAR(30));

创建表格发票(invoice_reference int UNIQUE AUTO_INCREMENT,customer_reference int UNIQUE,主键(invoice_reference),外键(customer_reference)引用客户(customer_reference),invoice_cost DECIMAL(20,2),支付位,order_date 日期时间,交货日期 DATE);

创建表存货(容器 VARCHAR(10) UNIQUE NOT NULL DEFAULT 0,主键(容器),SBADNLon INT(4),SBADNFel INT(4),SBADNSou INT(4),检查(容器=(“SBADN-Lon”> 0,“SBADN-Fel”> 0,“SBADN-Sou”> 0)));/* 这只是显示了 3 种可能的容器变体每个属性存储一个值,该值包含库存中可用的该模型的数量*/

创建表 Items_Purchased (container_ordered VARCHAR(10) NOT NULL,invoice_reference int,容器 VARCHAR(10) NOT NULL DEFAULT "None",container_cost decimal(20,2) NULL,container_size VARCHAR(6) 不为空,颜色 VARCHAR(5) 不为空,等级 CHAR(1) NOT NULL,仓库 VARCHAR(15) NOT NULL,container_type VARCHAR(20) NOT NULL,条件 n VARCHAR(4) NOT NULL,主键(container_ordered、container_size、colour、grade、depot、container_type、conditionn),外键 (invoice_reference) 引用发票 (invoice_reference),外键(容器)引用股票(容器),外键 (container_size) 引用 Container_Size (container_size),外键(颜色)引用颜色(颜色),外键(等级)引用等级(grade),外键(depot)引用仓库(depot),外键 (container_type) 引用 Container_Type (container_type),外键 (conditionn) 引用 Conditionn (conditionn));

创建表库(仓库 VARCHAR(15) NOT NULL,container_ordered VARCHAR(10) NOT NULL,主键(仓库),外键 (container_ordered) 引用 Items_Purchased(container_ordered),CHECK (depot = ("london","felixstowe","southampton")));

创建表 Container_Type (container_type VARCHAR(20) 不为空,container_ordered VARCHAR(10) NOT NULL,主键(容器类型),外键 (container_ordered) 引用 Items_Purchased(container_ordered),CHECK (container_type = ("dry","inslated","re​​freigerated","open top","tunnel")));

创建表 Container_Size (container_size VARCHAR(6) 不为空,container_ordered VARCHAR(10) NOT NULL,主键(容器大小),外键 (container_ordered) 引用 Items_Purchased(container_ordered),CHECK (container_size = ("small","medium","large")));

创建表格颜色(颜色 VARCHAR(5) 不为空,container_ordered VARCHAR(10) NOT NULL,主键(颜色),外键 (container_ordered) 引用 Items_Purchased(container_ordered),检查(颜色=(“黑色”,“绿色”)));

创建表条件n (条件 n VARCHAR(4) NOT NULL,container_ordered VARCHAR(10) NOT NULL,主键(条件),外键 (container_ordered) 引用 Items_Purchased(container_ordered),CHECK (conditionn = ("new","used")));

创建表成绩(等级 CHAR(1) NOT NULL,container_ordered VARCHAR(10) NOT NULL,主键(等级),外键 (container_ordered) 引用 Items_Purchased(container_ordered),检查(等级=(“a”,“b”,“c”)));

提前致谢

最佳答案

首先,我认为为您的表使用另一个主键会更好。

所有外键约束的数据类型应该与原始表中字段定义为主键的方式完全相同。例如,如果 Stock 表中的容器是 varchar(20),那么它必须是 Items_Purchased 表中的 varchar(20)。

此外,定义的排序规则(如果有的话)将是相同的,比如那些列的 utf-8。请注意,您的表可能在同一个集合中,但列可能不同,请正确检查。

最后,确保外键值的值是唯一的,外键列的定义包括not null

引用:MySQL Error 1215: Cannot add foreign key constraint

关于MySQL #1215 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49611946/

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