2012-12-16 113 views
0

我有一些麻煩理解爲什麼我得到MySQL的代碼錯誤150以下片段:無法創建外鍵的表 - MySQL錯誤150

-- Exercise Categories 
CREATE TABLE Exercise_cat 
(
ec_id  INT NOT NULL AUTO_INCREMENT, 
name  VARCHAR(25), 
PRIMARY KEY (ec_id) 
); 
-- This inserts fine 

-- Exercise Descriptions 
CREATE TABLE Exercise_desc 
(
e_id  INT NOT NULL AUTO_INCREMENT, 
name  VARCHAR(25), 
ec_id  INT NOT NULL, 
cal_per_hour INT NOT NULL, 
PRIMARY KEY (e_id), 
FOREIGN KEY (ec_id) REFERENCES Excercise_cat(ec_id) 
); 
-- ERROR (foreign key constraint not formed) 

我沒有離開過的列名稱,如[1][2]
我有分號,就像MySQL希望我那樣。

我該如何解決我的外鍵,以便我可以創建表?

+0

這是你的外鍵錯字嗎?表Excercise_cat不存在 - 不應該是Exercise_cat? –

+0

我正在看[SQLZoo](http://sqlzoo.net/howto/source/z.dir/tip241028/i02create.xml),想知道爲什麼他們的例子適合我。我看到的最大差異是'AUTO_INCREMENT',但我不知道這是否是重要的。 –

+0

你是對的matthewh!我感覺有點傻。做出答案,我會接受它。 –

回答

0

你引用Excercise_cat不存在表。但存在Exercise_cat。

因此應該糾正下面的行。

FOREIGN KEY (ec_id) REFERENCES Excercise_cat(ec_id) 
           ^
           | 
           +-- Remove this extra 'c' 
1

你的意思Exercise_cat沒有Excercise_cat

CREATE TABLE Exercise_desc 
(
    e_id  INT NOT NULL AUTO_INCREMENT, 
    name  VARCHAR(25), 
    ec_id  INT NOT NULL, 
    cal_per_hour INT NOT NULL, 
    PRIMARY KEY (e_id), 
    FOREIGN KEY (ec_id) REFERENCES Exercise_cat(ec_id) 
); 
相關問題