运行以下语句时:
CREATE TABLE `intelischool`.`facultyclasses` (
`id` VARCHAR(45) NOT NULL ,
`class` VARCHAR(45) NOT NULL ,
`subject` VARCHAR(45) NOT NULL ,
`year` VARCHAR(45) NOT NULL ,
`section` VARCHAR(45) NOT NULL ,
PRIMARY KEY (`id`, `section`, `year`, `subject`, `class`) ,
INDEX `id` (`id` ASC) ,
CONSTRAINT `id`
FOREIGN KEY (`id` )
REFERENCES `intelischool`.`faculty` (`id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
我收到错误:
ERROR 1005: Can't create table 'intelischool.facultyclasses' (errno: 121)
答案 0 :(得分:0)
在外键定义之前缺少逗号
,否则
删除表并使用索引创建它们(而不是向已创建的表添加索引)
答案 1 :(得分:0)
This mailing list thread是同一个问题,得出的结论是它是由一个重复的约束名称引起的。
你可能有另一个
CONSTRAINT `id`
在同一个数据库的另一个表中。这些名称必须是每个数据库唯一的。给它一个像
这样的名字CONSTRAINT `facultyclasses_foreignkey`
或者只是删除该行,让数据库自动生成一个名称。