簡體   English   中英

如何正確導入該數據庫?

[英]How do I import this database correctly?

如何正確導入該數據庫?

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,但是表的數量比此錯誤多得多。

請先嘗試導入,然后再回答。

這是一項工作:

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相同。

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

因此,首先創建包含有parent_id的表,然后嘗試創建category

我認為這給您帶來了錯誤,因為您引用的是一個不存在但尚未創建的表,該表就是您試圖創建的表。

為什么不先創建表,然后添加約束(外鍵)?

但是在同一張表中這樣做可能會導致您遇到錯誤。 如果新添加的記錄沒有為其分配父項,將會發生什么? 默認值為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`)
)

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM