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
和grade
。为了将student_id
的自动递增值发送到grade
(student_id)表,我在这两个记录之间建立了一个外键,如下所示:
CONSTRAINT `stdgrd` FOREIGN KEY (`student_id`) REFERENCES `student`
(`student_id`) ON DELETE CASCADE ON UPDATE CASCADE
我的问题是当我在student_name
表中的student
记录中插入值时,student(student_id)
会自动递增,所以我希望将自动递增的值发送到{{1 }}
但是grade(student_id)
表没有取得价值。我已经尝试了grade
中发布的问题的帮助,但我无法做到。请任何人可以帮忙解决这个问题吗?
答案 0 :(得分:0)
外键关系仅用于验证子列的内容。没有自动数据传输。插入student
并因此生成student_id
auto_inc值将不会立即影响grades
表。这只会创建一个student_id
值,现在是grades
。student_id
列的可接受内容。