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的值接着之前的。
下一篇:
数据库中有两种基本的锁类型