刪除或清空具有外來鍵約束的表資料包-ERROR 1701 (42000)

haoge0205發表於2014-08-12
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)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28939273/viewspace-1249694/,如需轉載,請註明出處,否則將追究法律責任。

相關文章