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


    现象

    MySQL在删除一张表时出现

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

    原因

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

    解决方案

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

    禁用外键约束

    SET FOREIGN_KEY_CHECKS = 0;

    然后就可以删除表了

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

    SET FOREIGN_KEY_CHECKS = 1; 

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

    SELECT  @@FOREIGN_KEY_CHECKS;

    注意

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

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

    SET GLOBAL FOREIGN_KEY_CHECKS = 0; 
  • 相关阅读:
    总结面试常见题
    关于面试
    关于SQL经典题
    阶乘
    异常处理——捕获并抛出
    异常处理——异常越界
    异常处理——创建抛出
    输出异常
    抛出异常
    异常处理
  • 原文地址:https://www.cnblogs.com/poloyy/p/12580157.html
Copyright © 2020-2023  润新知