首先创建学生表t_student
CREATE TABLE `t_student` (
`id` int(12) unsigned NOT NULL AUTO_INCREMENT,
`c_name` varchar(12) DEFAULT NULL,
`c_class_id` int(12) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11000 DEFAULT CHARSET=utf8
再创建学生扩展表t_student_extra
CREATE TABLE `t_student_extra` (
`id` int(12) unsigned NOT NULL AUTO_INCREMENT,
`c_student_id` int(12) DEFAULT NULL,
`c_father_name` varchar(12) DEFAULT NULL,
`c_mother_name` varchar(12) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `student_fk` (`c_student_id`)
) ENGINE=InnoDB AUTO_INCREMENT=11000 DEFAULT CHARSET=utf8
再创建t_student_extra的外键约束
Alter table `db_spring_demo`.`t_student_extra`
add foreign key (`c_student_id`)
references `db_spring_demo`.`t_student`(`id`)
on update Restrict
on delete Set null
此时抛出错误"Cannot add foreign key constraint",错误码1215
其原因是主键为 UNSINGED类型的
修改数据库即可
ALTER TABLE `db_spring_demo`.`t_student`
CHANGE `id` `id` INT (12) NOT NULL AUTO_INCREMENT;
ALTER TABLE `db_spring_demo`.`t_student_extra`
CHANGE `id` `id` INT (12) NOT NULL AUTO_INCREMENT;