1.delete与truncate都可以用来删除表中数据
2.delete删除你表中数据之后,再次插入数据索引会接着之前的,而truncate删除表中后重新插入数据索引会从初始大小开始。
3.delete在删除数据后会将删除操作作为事务存储在日志中,这样就可以进行事务回滚。而 truncate则不可以事务回滚。
truncate
删除之前
mysql> select * from t_new;
+----+------+
| id | name |
+----+------+
| 1 | NULL |
| 2 | 小明 |
+----+------+
2 rows in set
执行truncate语句之后
mysql> truncate table t_new;
Query OK, 0 rows affected
mysql> select * from t_new;
Empty set
重新插入数据
mysql> insert into t_new(name)value("小明");
Query OK, 1 row affected
mysql> select * from t_new;
+----+------+
| id | name |
+----+------+
| 1 | 小明 |
+----+------+
1 row in set
可以看到truncate删除表中数据后,再次插入数据,id变为1。
delete
删除之前
mysql> select * from t_new;
+----+------+
| id | name |
+----+------+
| 1 | 小明 |
+----+------+
1 row in set
执行delete语句
mysql> delete from t_new;
Query OK, 1 row
mysql> select * from t_new;
Empty set
再次插入数据
mysql> insert into t_new(name)value("小明");
Query OK, 1 row affected
mysql> select * from t_new;
+----+------+
| id | name |
+----+------+
| 2 | 小明 |
+----+------+
1 row in set
可以看到delete删除表中数据后,再次插入数据,id的值接着之前的。
本文详细对比了SQL中Delete与Truncate两种数据清除方式的特点。Delete保留事务日志,支持回滚,再次插入数据时ID续接;而Truncate不记录事务日志,无法回滚,重新插入数据时ID重置。
1272

被折叠的 条评论
为什么被折叠?



