无法在mysql中创建表:错误代码:1005(错误号:150)

无法在mysql中创建表:错误代码:1005(错误号:150),mysql,sql,foreign-keys,primary-key,mysql-workbench,Mysql,Sql,Foreign Keys,Primary Key,Mysql Workbench,我有两个名为“采购订单”和“采购订单详细信息”的表。问题是,当我尝试创建一个“采购订单详细信息”时,会出现以下错误 错误代码:1005。无法创建表 “电机零件.采购订单详细信息”(错误号:150)0.125秒 我使用mysql workbench作为GUI来创建表,我尝试了手工编写脚本和基于GUI的表实现,但都出现了相同的错误 下面是创建表的脚本 create table purchase_order ( date date, sid varchar(50), bill_no varch

我有两个名为
“采购订单”
“采购订单详细信息”
的表。问题是,当我尝试创建一个
“采购订单详细信息”
时,会出现以下错误

错误代码:1005。无法创建表 “电机零件.采购订单详细信息”(错误号:150)0.125秒

我使用mysql workbench作为GUI来创建表,我尝试了手工编写脚本和基于GUI的表实现,但都出现了相同的错误

下面是创建表的脚本

create table purchase_order
(
date date,
sid     varchar(50),
bill_no varchar(10),
total   double(10,2),
uid     varchar(20),

primary key(date,sid,bill_no)

);

create table purchase_order_details
(
pdate       date,
sid         varchar(50),
bill_no     varchar(10),
pid         varchar(20),
quantity    double(10,5),
type        varchar(10),
price       double(10,2),
total       double(10,2),

primary key(pdate,sid,bill_no,pid),
constraint fk_pur_ord_det_date  foreign key(pdate) references purchase_order(date),
constraint fk_pur_ord_det_bill_no   foreign key(bill_no) references purchase_order(bill_no),
constraint fk_pur_ord_det_pid   foreign key(pid) references product(pid),
constraint fk_pur_ord_det_sid   foreign key(sid) references supplier(sid)
);
我在谷歌上搜索了堆栈溢出站点,但找不到答案

我猜在
“采购订单详细信息”
中的外键
“fk\u pur\u ord\u det\u bill\u no”
有问题。没有
“fk\u pur\u ord\u det\u bill\u no”
脚本执行得非常好

我想不出那把钥匙有什么问题,请帮帮我


谢谢大家。

字段
sid
不存在于您的
采购订单\u详情表中。因此,您无法对该字段创建约束。字段“sid”存在于我的“采购订单详细信息”中。在“pdate”值之后。我终于找到了答案。。我在“采购订单”上创建了一个索引,并在“采购订单详细信息”中创建了一个包含所有外键的表。