我试图让我的 budget2000 表中的类别成为 mainBudget 中类别的外键。类别不是唯一编号,因此它不能是主键。当我运行代码时,我得到了著名的错误 1005。当我在 mainBudget 中使用 id 将类别作为主键的一部分时,代码会运行,但这会在以后产生问题。我该怎么做才能使类别成为外键。我正在使用 mysql 5.5。
这是我的代码
create table mainBudget(
id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
year Year NOT NULL,
amount double(10,2) NOT NULL,
category SMALLINT UNSIGNED NOT NULL,
primary key(id)
)ENGINE=INNODB;
create table budget2000(
id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
categories SMALLINT UNSIGNED NOT NULL,
INDEX categoryNumber (categories),
subCategory SMALLINT NOT NULL,
amount FLOAT(10,2) NOT NULL,
date DATE NOT NULL,
description VARCHAR(300) NOT NULL,
primary key(id),
FOREIGN KEY (categories) REFERENCES mainBudget(category)
)ENGINE=INNODB;