相同点:都能删除数据,都不会删除表结构
不同点:TRUNCATE:重新设置自增列,即计数器会归零,且不会影响事务
测试delete和truncate的区别:
CREATE TABLE `test`(
`id` INT(4) NOT NULL AUTO_INCREMENT,
`coll` VARCHAR(20) NOT NULL,
PRIMARY key (`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8
INSERT INTO `test`(`coll`) VALUES('1'),('2'),('3')
初始状态:
delete语句:
DELETE FROM `test`
查看自动增量(选中对应表右键 -> 设计表 -> 选项),此时的自动增量仍为4,即delete语句不会影响自增