2013-01-23 41 views
0

同時加入外鍵關係MySQL允許ERROR 1050同時加入外鍵關係的MySQL(5.5.29)給出錯誤1050:

我有2個表,並試圖給其他的外鍵關係,但它給了以下錯誤。

ERROR 1005: Can't create table 'yellowbikes.#sql-1e8_82' (errno: 121)

SQL語句:

ALTER TABLE `yellowbikes`.`schedule` 
    ADD CONSTRAINT `bike_number` 
    FOREIGN KEY (`bike_number`) 
    REFERENCES `yellowbikes`.`bike` (`bike_number`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION 
, ADD INDEX `bike_number_idx` (`bike_number` ASC) 

ERROR: Error when running failback script. Details follow.

ERROR 1050: Table 'schedule' already exists

SQL語句:

CREATE TABLE `schedule` (
    `bikeid` int(11) NOT NULL, 
    `bike_number` varchar(24) NOT NULL, 
    PRIMARY KEY (`bikeid`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 
+0

你有沒有嘗試沒有'yellowbikes'的SQL語句? –

+0

你是否100%確定你沒有名稱時間表?在您的第二個陳述之前,嘗試使用DROP TABLE IF EXISTS計劃。 – Alex

+0

聽起來像一張破碎的表,如果它存在的話。 – itachi

回答

0

檢查,以確保它們都是同一類型。 Schedule類型爲utf8。檢查whthr yellowbikesdefault的類型?!?!如果是這樣,將其更改爲utf8

編輯:

你也可以檢查,如果你的MySQL數據庫是MyISAM數據。如果是這樣,請將它用於InnoDB,因爲如果您需要數據庫來強制執行外鍵約束,或者您需要數據庫將由DML操作集所做的更改作爲單個工作單元來處理,那麼您將選擇InnoDB over MyISAM,因爲這些特性沒有MyISAM引擎。

+0

嗨Vin,是的都是相同的tyoe,我已經有一些更多的表和關係創建,但現在當我正在創建一個新的時候,它會拋出這個錯誤 – Parab

+0

如果你的MySQL數據庫引擎是MyISAM,你將無法在創建表後添加外鍵。如果是這樣,你可以將它更改爲InnoDB ..(ans編輯) –

+0

嗨Vinayak,引擎是INNODB本身的兩個表,與整理UTF8-默認排序 – Parab