语法
数据库操作中通过delete关键词和truncate关键词都可以达到删除表(删库跑路)的作用,首先来看看他们的用法:
DELETE FROM `test`
TRUNCATE TABLE `test`
区别
它们的区别在于:
- truncate删除表的同时会清空并重新设置自增列,而delete则不会
- truncate不会影响事务
对不同引擎的现象
对于mysql数据库,较早的版本默认使用的是MyISAM引擎,后面的版本则使用了InnoDB引擎。
如果使用delete删除,在重启数据库的使用根据引擎的区别会有以下现象:
- MyISAM 从上一个自增量开始,这是因为数据存在于文件夹当中。
- InnoDB 自增列从1开始,这是因为数据存在内存当中。