写了外键约束,删除父表内容发现删除成功
解决方法
查看两个表使用的引擎
show create table 表名;
发现
ENGINE=MyISAM
更改引擎
ALTER TABLE emp ENGINE=InnoDB;
重新写外键
再次尝试删除父表内容失败
MyISAM 和 InnoDB 是 MySQL 中的两种存储引擎,各自有不同的特点:
-
MyISAM:
- 优点:性能高,适合读操作频繁的场景。
- 缺点:不支持事务、外键约束和行级锁。表级锁可能影响并发性能。
- 用途:适用于对数据一致性要求不高的读密集型应用。
-
InnoDB:
- 优点:支持事务、外键约束、行级锁,有更高的数据完整性和并发处理能力。
- 缺点:性能可能略低于 MyISAM,特别是在写操作较多时。
- 用途:适用于对数据完整性和事务处理有较高要求的应用。
MyISAM 不支持外键约束,因此无法实现数据的完整性约束,这使得在需要确保数据之间关系一致性时,InnoDB 是更优的选择。
标签:数据完整性,mysql,外键,约束,引擎,InnoDB,MyISAM,生效 From: https://blog.csdn.net/2303_76928446/article/details/142058439