博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL删除表:Cannot delete or update a parent row: a foreign key constraint fails。
阅读量:3950 次
发布时间:2019-05-24

本文共 739 字,大约阅读时间需要 2 分钟。

MySQL库中有俩表,table1和table2,相互关联,在删除表的时候出错:

Cannot delete or update a parent row: a foreign key constraint fails。

很明显这是表关联生成的强制约束问题,在删除的时候回检查表之间的关联关系,从而导致无法删除。

解决办法:

SET foreign_key_checks = 0;  // 先设置外键约束检查关闭 drop table table1;  // 删除表,如果要删除视图,也是如此 SET foreign_key_checks = 1; // 开启外键约束检查,以保持表结构完整性

MySQL的环境变量中存在一个foreign_key_checks,这是默认检查外键的配置项,如果将其设置为0,则表示不检查外键约束。查看foreign_key_checks的值:

show VARIABLES like "foreign%";

运行结果:

mysql> show variables like “foreign%”;

±-------------------±------+
| Variable_name | Value |
±-------------------±------+
| foreign_key_checks | OFF |
±-------------------±------+
1 row in set, 1 warning (0.01 sec)

这是因为我将foreign_key_checks的值设置为了0,所以这里显示的是OFF,为关闭状态。运行SET foreign_key_checks = 1;将其设置为1,那这里的状态将是ON。

转载地址:http://guwzi.baihongyu.com/

你可能感兴趣的文章
利用ADOX、ADO操纵MDB文件(ACCESS)
查看>>
使用ADO操作MDB,关注数据类型
查看>>
使用windows自带Zip命令压缩文件
查看>>
windows获得文件大小
查看>>
Host 'ETCV3' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
查看>>
OCILIB在VS2008中的使用
查看>>
OCILIB VC2008 效率测试
查看>>
PL/SQL设置NUMBER显示为字符串
查看>>
linux ftp 脚本 -- 使用程序执行脚本
查看>>
MFC CListBox的使用
查看>>
VS2008向MFC 对话框 添加托盘图标(显示和消失)
查看>>
redhat中vsftp开机自启动
查看>>
MySQL存储过程,生成大量数据
查看>>
查询字段值出现多次的字段值
查看>>
SQL Server表存在则进行查重 SQL语句
查看>>
redhat 9 下sqlite 3的安装及编程
查看>>
两个同步表的字段复制.Oracle.
查看>>
windows MySQL 报“Got a packet bigger than 'max_allowed_packet' bytes”错误,解决过程.
查看>>
在Redhat9下静态编译glib库.
查看>>
CImg库编译使用.
查看>>