删除

删除

delete命令

语法:delete from 表名 [where 条件]

--删除数据(避免这样写,会全部删除)
DELETE FROM `student`

--删除指定数据
DELETE FROM `student` WHERE id = 1;

TRUNCATE 命令

作用:完全清空一个数据库表,表的结构和索引约束不会变!

--清空student表
TRUNCATE `student`

delete 和TRUNCATE区别

  • 相同点:都能删除数据,都不会删除表结构

  • 不同:

    • TRUNCATE重新设置 自增列 计数器会归零

    • TRUNCATE不会影响事务

 

-- 测试delete 和 truncate的区别
CREATE TABLE `test`(
`id` INT(10) NOT NULL AUTO_INCREMENT,
`col` VARCHAR(20) NOT NULL,
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET =utf8

INSERT INTO `test`(`col`) VALUES (1),(2),(3)

DELETE FROM `test` -- 不会影响自增

TRUNCATE FROM `test` -- 自增会归零

 

了解即可:delete删除的问题,重启数据库,现象

  • INNODB 自增列会从1开始(存在内存当中的,断电即失)

  • MYISAM 继续从上一个自增量开始(存在文件中的,不会丢失)

 

posted @ 2022-07-26 23:40  少时凌云志  阅读(356)  评论(0)    收藏  举报