【小皮面板】启动MySql后创建外键不起作用解决

本文介绍了在MySQL中创建班级和学生表,并利用外键约束确保数据一致性。通过示例展示了外键不起作用的问题,指出问题在于配置文件my.ini中的默认存储引擎设置为非InnoDB。解决方法是将存储引擎改为InnoDB,以启用外键约束。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下是案例

-- 先创建父表:班级表:
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

在这里插入图片描述

4.保存即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值