删除或清空具有外键约束的表数据报-ERROR 1701 (42000)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了删除或清空具有外键约束的表数据报-ERROR 1701 (42000)相关的知识,希望对你有一定的参考价值。
OS: centos 6.3
DB:5.5.14
mysql> select database();
+------------+
| database() |
+------------+
| sakila |
+------------+
1 row in set (0.00 sec)
mysql> delete from actor;
ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails (`sakila`.`film_actor`, CONSTRAINT `fk_film_actor_actor` FOREIGN KEY (`actor_id`) REFERENCES `actor` (`actor_id`) ON UPDATE CASCADE)
mysql> truncate table actor;
ERROR 1701 (42000): Cannot truncate a table referenced in a foreign key constraint (`sakila`.`film_actor`, CONSTRAINT `fk_film_actor_actor` FOREIGN KEY (`actor_id`) REFERENCES `sakila`.`actor` (`actor_id`))
mysql> show index from actor;
+-------+------------+---------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+-------+------------+---------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| actor | 0 | PRIMARY | 1 | actor_id | A | 200 | NULL | NULL | | BTREE | | |
| actor | 1 | idx_actor_last_name | 1 | last_name | A | 200 | NULL | NULL | | BTREE | | |
+-------+------------+---------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
mysql> set foreign_key_checks=0;
Query OK, 0 rows affected (0.00 sec)
mysql> delete from actor;
Query OK, 200 rows affected (0.01 sec)
mysql> set foreign_key_checks=1;
Query OK, 0 rows affected (0.00 sec)
以上是关于删除或清空具有外键约束的表数据报-ERROR 1701 (42000)的主要内容,如果未能解决你的问题,请参考以下文章
清空数据库错误:因为该表正由 FOREIGN KEY 约束引用 解决办法