Java学习-MySQL-MySQL数据管理-Delete、Truncate详解
初始值:
delete
DELETE FROM `student` WHERE id=10;
TRUNCATE
清空数据库表,表的结构和索引约束不变
TRUNCATE `student`
delete和TRUNCATE
相同点:都能删除数据,且都不会删除表结构
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('A'),('B'),('C')
自动增量增加到3,DELETE 不会影响自增
DELETE FROM test
INSERT INTO `test`(`coll`) VALUES('A'),('B'),('C')
TRUNCATE 会将自动增量归零
TRUNCATE TABLE test
INSERT INTO `test`(`coll`) VALUES('A'),('B'),('C')
delete拓展
- InnoDB:重启数据库,自增列会从1开始(存在内存中,断电即失)
- MyISAM:继续从上一个自增量开始(存在文件中,不会丢失)