删除 DELETE 和 TRUNCATE
DELETE 和 TRUNCATE
本部分为 DELETE 和 TRUNCATE 详解
-
DELETE
-
语法:
delete from 表名 [where 条件]
-- 删除数据表 DELETE(尽量不要这么删除) DELETE FROM `student`; -- 删除指定数据 DELETE FROM `student` WHERE id=1;
-
-
TRUNCATE:完全清空一个数据库表,表结构和索引约束不会变
-
语法:
TRUNCATE 表名
-- 完全清空数据库表 TRUNCATE `student`;
-
-
DELETE 和 TRUNCATE 的区别
- 相同点:都能删除数据且都不会删除表结构
- 不同点:
- TRUNCATE 会重新设置列的自增,自增计数会归零
- TRUNCATE 不会影响事物
- 所以用 TRUNCATE 是最好的
- 另外, delete 存在以下问题(了解即可)
- innodb 引擎数据库重启后自增列会从1重新开始(存在内存当中,断电即失)
- myisam 引擎数据库重启后自增列继续从上一个自增量开始(存在文件当中,断电不会丢失)