2017-03-08 4 views
1

私はSQLを持つ2つのテーブルを作成:は、MySQLが制約を追加[のErr] 1215で失敗する外部キー制約を追加することはできません

CREATE TABLE `dinnertable` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `tableName` varchar(20) DEFAULT NULL, 
    `tableStatus` int(11) DEFAULT '0', 
    `orderDate` datetime DEFAULT NULL, 
    PRIMARY KEY (`id`) 
); 

CREATE TABLE `food` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `foodName` varchar(20) DEFAULT NULL, 
    `foodType_id` int(11) DEFAULT NULL, 
    `price` double DEFAULT NULL, 
    `mprice` double DEFAULT NULL, 
    `remark` varchar(200) DEFAULT NULL, 
    `img` varchar(100) DEFAULT NULL, 
    PRIMARY KEY (`id`) 
); 

enter image description here

をしかし、私は追加するには、食品TABLEを変更することはできませんCONSTRAINT:

ALTER TABLE food ADD CONSTRAINT fk_food_foodType_id FOREIGN KEY(foodType_id) REFERENCES foodType(id); 

エラー情報付き:

[SQL] ALTER TABLEフードADD CONSTRAINT fk_food_foodType_id FOREIGN KEY(foodType_id)関連項目foodType(id);
[のErr] 1215 - あなたはあなたの外部キー制約の定義にfoodTypeテーブルを参照している

+0

あなたはデフォルトのエンジン= innoDBでデータベースを作成しましたか?すべてのテーブルのために? –

答えて

1

外部キー制約を追加することはできません。テーブルにを作成してから、に制約を追加する必要があります。

さらに、このテーブルのフィールドにはfoodType_idのタイプに一致するプライマリキーとしてidが含まれている必要があります。

+1

ありがとうございます、あなたの答えは正しいです。 – lustre

+1

3分後に正しいと – e4c5

+0

とマークする必要があります;;) – lustre

関連する問題