私は、私のbudget2000テーブルのカテゴリをmainBudgetのカテゴリの外部キーにしようとしています。カテゴリは一意の番号ではないため、プライマリキーにすることはできません。私がコードを実行すると、有名なエラー1005が発生します。コードを実行するidを持つmainBudgetのプライマリキーのカテゴリ部分を作成すると、後で問題が発生します。カテゴリを外部キーにするにはどうすればよいですか。私は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