Mysql 我的sql程序有外键问题
我得到这个错误 错误1822(HY000):未能添加外键约束。丢失的 引用表中的约束“purchase_ibfk_2”的索引 “库存” 在这里: 外键引用的列需要唯一索引:Mysql 我的sql程序有外键问题,mysql,sql,Mysql,Sql,我得到这个错误 错误1822(HY000):未能添加外键约束。丢失的 引用表中的约束“purchase_ibfk_2”的索引 “库存” 在这里: 外键引用的列需要唯一索引:库存(项目名称)没有该索引。我只建议引用inventory的主键,而不是其他列: create table purchase ( ... foreign key (item_name) references inventory(item_name) ) 错误代码非常明确(且准确),采购表应该有一个item_i
库存(项目名称)
没有该索引。我只建议引用inventory
的主键,而不是其他列:
create table purchase (
...
foreign key (item_name) references inventory(item_name)
)
错误代码非常明确(且准确),采购表应该有一个item_id列,而不是item_name列。它应该是FK。您希望在表
购买中有项目id
,然后在项目id
上创建FK。FKs与PKs相关,而非描述性字段。您需要:“MySQL需要外键和引用键的索引,以便外键检查可以快速进行,并且不需要表扫描。在引用表中,必须有一个索引,其中外键列按相同顺序列示为第一列。”Welcome@0xAli。如果我的答案正确回答了你的问题,那么点击复选标记。。。谢谢。独特是好的,但不是必需的。没有唯一的。
create table purchase (
...
foreign key (item_name) references inventory(item_name)
)
create table purchase (
purchase_date date,
purchase_count int,
customer_id int,
item_id int,
foreign key (customer_id) references customer(customer_id),
foreign key (item_id) references inventory(item_id)
);