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