2

我搜索的答案可能有效,但没有解决。

我已经创建了这样的表,当创建表“爱好”时出现错误 1072。

CREATE  TABLE IF NOT EXISTS `project_r`.`user` (
  `user_id` INT NOT NULL ,
  `password` VARCHAR(45) NOT NULL ,
  `RealName` VARCHAR(45) NOT NULL ,
  `FamilyName` VARCHAR(45) NOT NULL ,
  `birthdate` VARCHAR(45) NOT NULL ,
  `Homecity` VARCHAR(45) NOT NULL ,
  `school_id` INT NOT NULL ,
  `school_enteryear` INT NOT NULL ,
  `email` VARCHAR(45) NULL ,
  `activestat` VARCHAR(45) NULL ,
  `onlinestat` VARCHAR(45) NULL ,
  `regtime` DATETIME NOT NULL ,
  `avatar` VARCHAR(45) NULL ,
  `status` VARCHAR(45) NULL ,
  `desc` VARCHAR(45) NULL ,
  `self_comment` VARCHAR(45) NULL ,
  `userMsg_id` INT NOT NULL ,
  PRIMARY KEY (`user_id`) ,
  INDEX `fk_user_school1_idx` (`school_id` ASC) ,
  CONSTRAINT `fk_user_school1`
    FOREIGN KEY (`school_id` )
    REFERENCES `project_r`.`school` (`school_id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;

然后创建表“爱好”

CREATE  TABLE IF NOT EXISTS `project_r`.`hobbies` (
  `hobby_user_id` INT NOT NULL ,
  `favorite_music` VARCHAR(45) NULL ,
  `favorite_game` VARCHAR(20) NULL ,
  `favorite_film` VARCHAR(45) NULL ,
  `favorite_book` VARCHAR(45) NULL ,
  `favorite_sport` VARCHAR(45) NULL ,
  `favorite_cartoon` VARCHAR(45) NULL ,
  `hobby` VARCHAR(45) NULL ,
  PRIMARY KEY (`user_id`) ,
  INDEX `fk_user_id` (`hobby_user_id` ASC) ,
  CONSTRAINT `fk_user_id`
    FOREIGN KEY (`hobby_user_id` )
    REFERENCES `project_r`.`user` (`user_id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;

添加或不添加 AUTO-INCREMENT 事物或添加到引用表的索引都不起作用。谢谢帮助。

4

3 回答 3

1

在“爱好”表中,您尝试将 pk 设置为不存在的 user_id。将其更改为:

PRIMARY KEY (`hobby_user_id`)
于 2012-12-11T02:55:59.020 回答
1

user_id表上的字段hobbies不存在,可能是您想hobby_user_id成为表中的主键hobbies

 PRIMARY KEY (`hobby_user_id`),

约束表上的外键hobbies没有错。

于 2012-12-11T03:14:50.577 回答
0

PRIMARY KEY在 中的列上user_id设置a hobbies,但没有这样的列。它被称为hobby_user_id

 PRIMARY KEY (`hobby_user_id`) ,

PRIMARY KEY在我自己的数据库中进行的快速测试成功地创建了具有正确规范的这两个表。

于 2012-12-11T02:54:51.963 回答