delete与truncate删除表中数据的区别

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的值接着之前的。

经验分享 程序员 微信小程序 职场和发展