Mysql 如何对自动递增记录使用外键?

Mysql 如何对自动递增记录使用外键?,mysql,mysql-workbench,Mysql,Mysql Workbench,我创建了两个表student和grade。为了将student\u id的自动递增值发送到grade(student\u id)表,我在这两个记录之间建立了一个外键,如下所示: DROP TABLE IF EXISTS `student`; CREATE TABLE `student` ( `student_id` int(11) NOT NULL AUTO_INCREMENT, `student_name` varchar(45) DEFAULT NULL,

我创建了两个表
student
grade
。为了将
student\u id
的自动递增值发送到
grade
(student\u id)表,我在这两个记录之间建立了一个外键,如下所示:

  DROP TABLE IF EXISTS `student`;  
 CREATE TABLE `student` (  
  `student_id` int(11) NOT NULL AUTO_INCREMENT,  
  `student_name` varchar(45) DEFAULT NULL,  
  PRIMARY KEY (`student_id`)  
) ENGINE=InnoDB AUTO_INCREMENT=901840505 DEFAULT CHARSET=utf8;  


DROP TABLE IF EXISTS `grades`;  
 CREATE TABLE `grades` (  
  `grade_id` int(11) NOT NULL AUTO_INCREMENT,  
  `student_id` int(11) DEFAULT NULL,  
  `grade` varchar(45) DEFAULT NULL,  
  PRIMARY KEY (`grade_id`),  
  KEY `stdgrd_idx` (`student_id`),  
  CONSTRAINT `stdgrd` FOREIGN KEY (`student_id`) REFERENCES `student`   (`student_id`)
      ON DELETE CASCADE ON UPDATE CASCADE  
) ENGINE=InnoDB AUTO_INCREMENT=1641 DEFAULT CHARSET=utf8;  
我的问题是,当我将值插入
student\u name
表中的
student
记录时,
student(student\u id)
是自动递增的,因此我希望自动递增的值被发送到
grade(student\u id)

但是,
等级
表没有考虑该值。我已经在
stackoverflow
中发布的问题的帮助下尝试过了,但我没能成功。请任何人对此问题提供帮助???

外键关系仅用于验证子列的内容。没有数据的自动传输。插入
student
并生成
student\u id
auto\u inc值不会立即影响
grades
表。这只会创建一个
student\u id
值,该值现在是
grades
student\u id
列的可接受内容。

向子表添加记录不会触发父表中的自动增量……您认为还有其他方法可以解决我的问题吗?外键不会“发送”任何地方都可以。它们只是强制执行父/子关系并禁止孤立记录。您首先必须插入(创建)一个
student
记录,从而使mysql为您创建一个ID。您可以使用
last\u insert\u ID()
获取该ID,并将其插入成绩表。如果您不介意,请向我发送一个与之相关联的查询?
indirect into students…
然后
选择last\u insert\u ID()
,然后
插入成绩表。。。值($last_insert_id,…)
是否有其他方法将自动递增的值触发到
grade
表中。您可以使用存储过程来实现这一点,但我会质疑用例。
student
grades
之间的关系是一对多的,所以我不认为“发送”auto_inc有什么意义?您计划如何填充
等级
等级
列?一个学生肯定有很多分数吗?为什么创建一个学生就意味着创建一个等级?这只是一门课程,所以很明显他只有一个等级。然后在
学生
中创建
等级
栏。如果你的数据是1对1,你不需要两个表。先生,实际上我已经分配了一项任务,在两个表之间建立关系。
CONSTRAINT `stdgrd` FOREIGN KEY (`student_id`) REFERENCES `student`
(`student_id`) ON DELETE CASCADE ON UPDATE CASCADE