DROP、DELETE 与 TRUNCATE 的区别
三种都可以表示删除,其中的细微区别之处如下:
DROP | DELETE | TRUNCATE | |
---|---|---|---|
SQL 语句类型 | DDL | DML | DDL |
回滚 | 不可回滚 | 可回滚 | 不可回滚 |
删除内容 | 从数据库中 删除表,所有的数据行,索引和权限也会被删除 | 表结构还在,删除表的 全部或者一部分数据行 | 表结构还在,删除表中的 所有数据 |
删除速度 | 删除速度最快 | 删除速度慢,需要逐行删除 | 删除速度快 |
因此,在不再需要一张表的时候,采用 DROP;在想删除部分数据行时候,用 DELETE;在保留表而删除所有数据的时候用 TRUNCATE。
评论(1)
https://www.baidu.com/link?url=n3BWPmE-YhdJiOto-V0r3pQsCVlG4YWE8CMCjcDWyx7lAyxW_WTTXjKVC0WsGI1jmlSPR18LwpBuci_0nHfOoYANMumzxnh126wzaz83gUK&wd=&eqid=bac588dc00247ed400000005624c4ded
好像MySQL8.0支持回滚