gpt4 book ai didi

mysql - 为什么可以删除但不能截断?

转载 作者:行者123 更新时间:2023-11-29 10:09:14 25 4
gpt4 key购买 nike

所以我在表中有一堆测试行:

+----+--------+---------+-----------+----------+---------------------+--------------+
| id | name | guru_id | parent_id | approved | created_ts | last_edit_ts |
+----+--------+---------+-----------+----------+---------------------+--------------+
| 1 | PHP | 1 | NULL | 0 | 2018-07-12 14:27:05 | NULL |
| 2 | HTML | 1 | NULL | 0 | 2018-07-12 14:33:21 | NULL |
| 3 | CSS | 1 | NULL | 0 | 2018-07-12 14:34:54 | NULL |
| 4 | test | 1 | NULL | 0 | 2018-07-12 14:37:11 | NULL |
| 5 | test | 1 | NULL | 0 | 2018-07-12 14:38:39 | NULL |
| 6 | test | 1 | NULL | 0 | 2018-07-12 14:40:39 | NULL |
| 7 | test | 1 | NULL | 0 | 2018-07-12 14:43:29 | NULL |
| 8 | test | 1 | NULL | 0 | 2018-07-12 14:43:59 | NULL |
| 9 | test | 1 | NULL | 0 | 2018-07-12 14:45:12 | NULL |
| 10 | test | 1 | NULL | 0 | 2018-07-12 14:45:19 | NULL |
| 11 | test | 1 | NULL | 0 | 2018-07-12 14:45:39 | NULL |
| 12 | CSS | 1 | NULL | 0 | 2018-07-12 14:46:30 | NULL |
| 13 | trey | 1 | NULL | 0 | 2018-07-12 14:48:47 | NULL |
| 14 | trey | 1 | NULL | 0 | 2018-07-12 14:49:36 | NULL |
| 15 | trey | 1 | NULL | 0 | 2018-07-12 14:50:52 | NULL |
| 16 | ajax | 1 | NULL | 0 | 2018-07-12 14:51:23 | NULL |
| 17 | jquery | 1 | NULL | 0 | 2018-07-12 14:51:44 | NULL |
+----+--------+---------+-----------+----------+---------------------+--------------+

我最终让我的代码按照我想要的方式工作,因此我尝试截断表以使用新数据开始:

mysql>截断类别

返回此错误:

ERROR 1701 (42000): Cannot truncate a table referenced in a foreign key constraint (db.page, CONSTRAINT FK_140AB62012469DE2 FOREIGN KEY (category_id) REFERENCES db.category (id))

我想开个玩笑来绕过它,试试这个:

> 从 id != 0 的类别中删除;

令我惊讶的是,该命令起作用了。现在我有一个所需的空表,但不确定为什么delete from超过了外键检查,但没有truncate?这背后有什么逻辑/原因吗?

最佳答案

delete 命令将考虑级联删除(如果已启用),否则会失败。

Truncate 仅作用于表,而不作用于链接记录。 Truncate 本质上是尝试删除表的所有数据页和索引,而不考虑其他表 - 外键约束会阻止这种情况。

截断实际上是删除表,然后创建相同架构的表。

关于mysql - 为什么可以删除但不能截断?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51307605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com