以下是案例
-- 先创建父表:班级表:
create table t_class(
cno int(4) PRIMARY KEY auto_increment,
cname varchar(10) not null,
room char(4)
)
-- 可以一次性添加多条记录:
insert into t_class values (null,'java001','r803'),(null,'java002','r416'),(null,'大数据001','r103');
-- 查询班级表:
select * from t_class;
-- 创建子表,学生表:
create table t_student(
sno int(6) primary key auto_increment,
sname varchar(5) not null,
classno int(4),-- 取值参考t_class表中的cno字段,不要求字段名字完全重复,但是类型长度定义 尽量要求相同。
constraint fk_stu_classno foreign key (classno) references t_class (cno)
);
-- 添加学生信息:
insert into t_student values (null,'张三',1),(null,'李四',1),(null,'王五',2);
insert into t_student values (null,'张三',3),(null,'李四',3),(null,'王五',3);
-- 查看学生表:
select * from t_student;
insert into t_student values (null,'丽丽',4); -- 约束效果不起作用
delete from t_class where cno = 2; -- 约束效果不起作用
外键不起作用的原因是小皮面板中mysql的配置文件my.ini文件中的引擎有误,以下是更改步骤:
1.找到文件
2.选择my.ini文件
3.更改引擎 在[mysqld]中添加或修改
default-storage-engine=INNODB