删除或清空具有外键约束的表数据报-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 约束引用 解决办法

MySQL 如何删除有外键约束的表数据

MySQL 如何删除有外键约束的表数据

SQL 怎样删除有外键约束的表

Rails db:schema:load 错误:Mysql2::Error:无法删除或更新父行:外键约束失败

MySQL:错误 1217 (23000):无法删除或更新父行:外键约束失败 - 但仅适用于 1 个 sql 文件