我越来越想添加一个外键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