我想讓我的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;
謝謝,至於類別的表我不知道它是否值得額外的表。只有8個類別,他們通過PHP傳遞和硬編碼在PHP中。用戶有一個下拉菜單可以查看類別。 – Aaron