删除或清空具有外键约束的表数据报…

来源:互联网 发布:青年网络公开课郑若麟 编辑:程序博客网 时间:2024/06/04 17:40
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 foreignkey 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 foreignkey 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)
0 0
原创粉丝点击