我越來越想添加一個外鍵contraint當這個錯誤:錯誤當創建一個外鍵
#1005 - Can't create table './testtable/#sql-595_146.frm' (errno: 150)
我需要做一個ON DELETE CASCADE的共享項目ID的所有圖像時項目被刪除。我的簡化表結構如下:
CREATE TABLE IF NOT EXISTS `images` (
`image_id` mediumint(8) unsigned NOT NULL auto_increment,
`project_id` smallint(6) NOT NULL,
PRIMARY KEY (`image_id`),
KEY `project_id_ix` (`project_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=28 ;
CREATE TABLE IF NOT EXISTS `projects` (
`project_id` smallint(5) unsigned NOT NULL auto_increment,
PRIMARY KEY (`project_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;
現在,當我運行下面的查詢來添加約束時,查詢失敗,出現上述錯誤。誰能幫忙?
ALTER TABLE `images` ADD CONSTRAINT `project_id_fk` FOREIGN KEY (`project_id`) REFERENCES `projects` (`project_id`) ON DELETE CASCADE;
非常感謝!
如果MySQL從CREATE TABLE語句報告錯誤編號1005,並且錯誤消息引用了錯誤150,表創建失敗,因爲外鍵約束未正確形成:http://dev.mysql.com/doc/ refman/5.1/en/innodb-foreign-key-constraints.html – 2010-01-04 21:47:07
^是的男人,我知道錯誤說什麼。我無法弄清楚的是我的錯誤在哪裏。這就是爲什麼我要求幫助 – user239237 2010-01-04 21:52:41