2013-09-30 77 views
3

我有一個問題補充外鍵現有的表,我總是得到錯誤不能外鍵添加到表

ERROR 1005(HY000): Can't create table '#sql-a1f-b84' (errno: 150) 

我試着像

ALTER TABLE alliances ADD CONSTRAINT fk_alliance_id FOREIGN KEY (alliance_id) references alliances(id); 

當我做DESCRIBE alliances;

Field Type Null Key Default Extra 
id  int(11) NO  PRI NULL  auto_increment 
name bigint(2) YES  NULL  

當我做DESCRIBE alliance_invitation;

Field  Type Null Key Default Extra 
id   int(11) NO  PRI NULL  auto_increment 
alliance_id int(11) NO    

誰能告訴我什麼是問題?

回答

3

您需要先在您的FK欄alliance_idCREATE INDEX。 Mysql需要預先存在的索引才能在其上添加約束。

1

試試這個:

ALTER TABLE `alliance_invitation` ADD INDEX (`alliance_id`); 
ALTER TABLE `alliance_invitation` ADD FOREIGN KEY (`alliance_id`) 
REFERENCES `alliances` (`id`) ON DELETE CASCADE ON UPDATE CASCADE; 

可以級聯改變任何東西。更多信息here