前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mysql - 删除表时出现: Cannot delete or update a parent row: a foreign key constraint fails

Mysql - 删除表时出现: Cannot delete or update a parent row: a foreign key constraint fails

作者头像
小菠萝测试笔记
发布2020-06-09 15:31:49
1.8K0
发布2020-06-09 15:31:49
举报
文章被收录于专栏:自动化、性能测试

现象

MySQL在删除一张表时出现

ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint fails

原因

可能是在Mysql中,删除的表和另一张表设置了foreign key的关联,造成无法更新或删除数据;

解决方案

可以通过设置FOREIGN_KEY_CHECKS变量来避免这种情况。

禁用外键约束

代码语言:javascript
复制
SET FOREIGN_KEY_CHECKS = 0;

然后就可以删除表了

删除完成后再启动外键约束

代码语言:javascript
复制
SET FOREIGN_KEY_CHECKS = 1; 

查看当前FOREIGN_KEY_CHECKS的值可用如下命令

代码语言:javascript
复制
SELECT  @@FOREIGN_KEY_CHECKS;

注意

这样设置只会影响当前会话, 不会影响全局

若想设置全局变量的话,可以这样写

代码语言:javascript
复制
SET GLOBAL FOREIGN_KEY_CHECKS = 0; 
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-03-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 现象
  • 原因
  • 解决方案
    • 禁用外键约束
      • 删除完成后再启动外键约束
        • 查看当前FOREIGN_KEY_CHECKS的值可用如下命令
          • 注意
          相关产品与服务
          云数据库 SQL Server
          腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档