用法:
1、當不再使用該表時,使用
drop
2、當仍要保留該表,但是要删除所有記錄時,用
truncate
3、當要删除部分記錄或者擔心可能需要復原,使用
delete
删除程度從強到弱排序如下:
1、drop table tb;
drop是直接将表格删除,無法找回。
例如删除user表:
2、truncate table tb;
truncate是删除表中的所有資料,不能與where一起使用
例如删除user表中所有資料:
3、delete from tb (where)
delete也是删除表中資料,可以與where連用,删除指定資料
删除user表中所有資料:
删除user表中id為2的資料:
truncate和delete的差別:
1、事務
truncate
删除後不記錄mysql日志,是以不可以rollback復原操作,也不可以恢複資料;
delete
可以rollback復原資料
原因:
truncate
相當于保留原mysql表的結構,重新建立了這個表,所有狀态都是新的;
delete
的效果相當于是一行一行的删除,是以可以rollback
2、效果
效率上
truncate
比
delete
快,而且
truncate
删除後将重建索引(新插入資料的id從0開始),而
delete
不會删除索引(新插入的資料的id将在删除資料的索引後繼續添加)
3、truncate不會觸發任何delete觸發器
4、傳回值
delete操作後傳回删除的記錄數;
truncate傳回的是0或者-1(删除資料成功則傳回0,失敗則傳回-1)
轉載自:Mysql 删除資料表的三種方式詳解