2013-02-10 123 views
0

我一直在搜索SO和Google這個問題,但是我想出的東西幾乎就是我的錯誤信息告訴我的,而這不是問題。創建外鍵時出錯

我正在使用PHPMyAdmin創建表之間的關係。我有這個表「warehouse_product_history」與類型爲int(11)NULL的列「from」。我嘗試創建一個外鍵表「倉庫」,那的phpMyAdmin這樣做時,執行查詢以下

ALTER TABLE `warehouse_product_history` 
ADD FOREIGN KEY (`from`) REFERENCES `my_db`.`warehouses` (`id`) 
ON DELETE CASCADE ON UPDATE CASCADE; 

類型的warehouses-> ID爲int(11)NOT NULL,使應該不是問題。我試圖將`from-column的數據類型更改爲int(11)NOT NULL,但結果相同。

我收到此錯誤信息

Error creating foreign key on from (check data types) 
+0

您收到了什麼具體錯誤?你是否在現有的填充桌上收到這個?兩個表都是'InnoDB'嗎?試圖創建約束後,你運行了'SHOW INNODB STATUS'嗎?兩列是否相同**? – Kermit 2013-02-10 19:08:58

+0

用錯誤更新了問題。倉庫表被填充。 warehouse_product_history不是。我不幸有權顯示innodb狀態。他們確實是相同的。 – 2013-02-10 19:50:42

+0

你可以分享兩個表格模式嗎,這樣我們可以嘗試嗎? – SparKot 2013-02-10 20:34:22

回答

4

從你的表模式,你的列是不相同的。 warehouses.idUNSIGNED NOT NULL其中warehouse_product_history.from已簽名,DEFAULT NULL

+0

您是絕對正確的。解決方案只是將標誌從簽名更改爲無簽名,因爲我不需要負號。 – 2013-02-11 09:15:54