2012-03-27 51 views
0

如何正確導入此數據庫?如何正確導入這個數據庫?

https://github.com/samanz/cakecart

我每次導入,然後我得到這個錯誤:

Error 

SQL query: 

CREATE TABLE `categories` (
`id` INT(11) NOT NULL AUTO_INCREMENT , 
`name` VARCHAR(50) NULL default NULL , 
`parent_id` INT(11) UNSIGNED default '0', 
`order` INT(3) default '0', 
`image` VARCHAR(50) NULL default NULL , 
`ids` VARCHAR(225) NULL default NULL , 
`url` VARCHAR(255) NULL default NULL , 
PRIMARY KEY (`id`) , 
FOREIGN KEY (`parent_id`) REFERENCES categories(`id`) , 
UNIQUE KEY `url` (`url`) 
); 

MySQL said: Documentation 
#1005 - Can't create table 'db.categories' (errno: 150) 

外鍵是錯誤150,但還有比這個錯誤更表。

請先嚐試導入然後回答。

+0

這適用於MySQL 5.1。你使用的是什麼版本的MySQL? – RichardAtHome 2012-03-27 08:38:45

回答

2

這一個工程:

CREATE TABLE `categories` (
`id` INT(11) NOT NULL AUTO_INCREMENT , 
`name` VARCHAR(50) NULL default NULL , 
`parent_id` INT(11), 
`order` INT(3) default '0', 
`image` VARCHAR(50) NULL default NULL , 
`ids` VARCHAR(225) NULL default NULL , 
`url` VARCHAR(255) NULL default NULL , 
PRIMARY KEY (`id`) , 
FOREIGN KEY (`parent_id`) REFERENCES categories(`id`) , 
UNIQUE KEY `url` (`url`) 
); 

編輯:其實你只需要刪除簽名,使其工作。但我真的不知道爲什麼你想它默認爲0.它應該是默認的NULL,這是默認的默認.. :)

我相信parent_id的類型必須與id相同。

+0

這是在MySQL 5.0.77 – barsju 2012-03-27 08:40:11

+0

後,我做你的更新我收到一個新的錯誤,我的編輯 – Dale 2012-03-27 08:57:19

+0

#1064之後增加的 - 你在你的SQL語法錯誤;檢查對應於你的MySQL服務器版本正確的語法使用附近的手冊「//刪除無符號和defalt ..'order' INT(3)默認的‘0’,'image' VARCHAR(」 4行 – Dale 2012-03-27 09:13:22

-1

問題是,您正試圖創建表category。在此表中,您正在使用forign鍵,但此forign鍵包含表尚未創建。

所以首先創建一個嘗試創建category

+0

不要以爲這是個問題。 – barsju 2012-03-27 08:47:32

-1

我認爲這是給你和錯誤,因爲引用的是不存在的,尚未創建,表,該表的表的表contaning parent_id。經過你試圖創造自己。

爲什麼不先創建表然後添加約束(外鍵)?

但是您可能會遇到一個可能的錯誤,您可能會在同一個表中執行此操作。如果新添加的記錄沒有分配父項,會發生什麼情況?默認值是0.這會給你一個錯誤,因爲沒有記錄id = 0?

我建議你通過爲此創建一個關係表來規範化。

CREATE TABLE CategoryGroups //or whatever name you find fits. 
(
`Cat_id` int(11) NOT NULL, 
`Parent_id` int(11), 
FOREIGN KEY (`Parent_id`) REFERENCES categories(`id`), 
FOREIGN KEY (`Cat_id`) REFERENCES categories(`id`) 
) 

最佳做法是規範化所有數據,並通過創建關係表來移除任何兩個表之間的所有多對多關係。

相關問題