首页 > 数据库 >mysql写外键约束时不生效

mysql写外键约束时不生效

时间:2024-09-30 15:48:51浏览次数:9  
标签:数据完整性 mysql 外键 约束 引擎 InnoDB MyISAM 生效

写了外键约束,删除父表内容发现删除成功

解决方法

查看两个表使用的引擎

show create table 表名;

发现

ENGINE=MyISAM

更改引擎

ALTER TABLE emp ENGINE=InnoDB;


重新写外键

再次尝试删除父表内容失败

MyISAMInnoDB 是 MySQL 中的两种存储引擎,各自有不同的特点:

  1. MyISAM

    • 优点:性能高,适合读操作频繁的场景。
    • 缺点:不支持事务、外键约束和行级锁。表级锁可能影响并发性能。
    • 用途:适用于对数据一致性要求不高的读密集型应用。
  2. InnoDB

    • 优点:支持事务、外键约束、行级锁,有更高的数据完整性和并发处理能力。
    • 缺点:性能可能略低于 MyISAM,特别是在写操作较多时。
    • 用途:适用于对数据完整性和事务处理有较高要求的应用。

MyISAM 不支持外键约束,因此无法实现数据的完整性约束,这使得在需要确保数据之间关系一致性时,InnoDB 是更优的选择。

标签:数据完整性,mysql,外键,约束,引擎,InnoDB,MyISAM,生效
From: https://blog.csdn.net/2303_76928446/article/details/142058439

相关文章

  • sql注入-基于MySQL
    SQL注入的失败——SQL语句的未知性导致的拼接失败SQL操作都会导致SQL注入的出现:select,insert,update,delete数据类型:数字型(无符号干扰)——select*fromnewswhereid=$id;字符型(有符号干扰)——select*fromnewswhereid='$id';搜索型(有多符号干扰)——s......
  • PBOOTCMS的水印功能如何使用?pbootcms设置的水印为何没生效?
    在PbootCMS中,水印功能主要用于给新上传的图片添加水印。如果你发现开启了水印功能但前端仍然没有水印,可能是因为以下几个原因:只对新上传的图片生效:水印功能仅对新上传的图片生效,之前上传的图片不会自动加上水印。水印配置未生效:可能是因为水印配置没有正确设置或生效。图片......
  • 【25届计算机毕设选题推荐】基于python+MySQL的社区医院挂号就诊管理系统的设计与实现
    ✍✍计算机毕业编程指导师**⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流!⚡⚡Java、Python、小程序、大数据实战项目集⚡⚡文末获取......
  • 【2025计算机毕设选题推荐】基于python+MySQL的社区医院管理系统的设计与实现
    ✍✍计算机毕业编程指导师**⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流!⚡⚡Java、Python、小程序、大数据实战项目集⚡⚡文末获取......
  • nodejs koa 用knex.js链接mysql数据库,进行数据增删改查
    1、knex.js安装npminstallknex官方Installation|Knex.js中文文档|Knex.js中文网2、进行数据库链接constknex=require('knex')({client:'mysql2',connection:{host:'127.0.0.1',//地址user:'root',//账号......
  • 初学MySQL之基础篇1
    1、基本规则SQL可以写成一行或者多行,关键字不能被缩写也不能分行;但为了提高可读性,各子句分行写,必要时使用缩进;每条命令以;或\g结束;所有的()、单引号、双引号使用英文状态输入,必须成对结束;字符串型和日期、时间类型的数据使用单引号('')表示;列的别名尽量使用双引......
  • Windows平台下安装与配置MySQL9
    Windows平台下安装与配置MySQL9 要在Windows平台下安装MySQL,可以使用图行化的安装包。图形化的安装包提供了详细的安装向导,以便于用户一步一步地完成对MySQL的安装。本节将详细介绍使用图形化安装包安装MySQL的方法。1.2.1 安装MySQL要想在Windows中运行MySQL,需要32位或6......
  • 解决 ASP.NET Core MySql varchar 字符串截取(长度 255)
    解决ASP.NETCoreMySqlvarchar字符串截取(长度255) ASP.NETCore中使用MySql,如果字段类型为varchar,不管设置多少长度,插入或更新数据的时候,会自动截断(截取255长度的字符)。出现问题的原因,就是使用了MySql.Data.EntityFrameworkCore程序包(我使用的版本是7.0.7-m6),可能是......
  • EntityFramework.Extended 支持 MySql
    EntityFramework.Extended支持MySql EntityFramework.Extended默认不支持MySql,需要配置如下代码:[DbConfigurationType(typeof(DbContextConfiguration))]//增加配置publicclassSchoolDbContext:DbContext,IDbContext{publicSchoolDbContext()......
  • MySQL登录时出现ERROR 1045: Access denied for user ‘root‘@‘localhost‘ (using p
    Mysql在使用过程中,可能会遇到登录问题,比如常见的错误信息:“Accessdeniedforuser‘root’@‘localhost’(usingpassword:YES)”。本文将分析这个问题的可能原因,并提供一系列解决方案. 定位报错原因出现这个Accessdenied问题的原因有如下可能:MySQL的服务器停止了。......