mysql 尝试使用 FOREIGN KEY 创建新的 table 时出现错误 1822

mysql error 1822 when trying to create new table with a FOREIGN KEY

尝试以下代码:

create table donation(
    donation_number int not null primary key  ,
    product_id int not null
);

create table stock ( 
    product_id int not null primary key, 
    available_qty int not null, 
    FOREIGN KEY (product_id ) REFERENCES donation(product_id)
);

回馈

Error Code: 1822. Failed to add the foreign key constraint. Missing index for constraint 'stock_ibfk_1' in the referenced table 'donation'.

为什么?我该如何解决这个问题?

要创建外键关系,您在其上创建关系的父 table 列必须是唯一的或主要的,并且它们必须具有相同的数据类型和大小也

product_id 捐赠 table 不是唯一的。