天天看點

<MySQL>MySQL删除資料表的三種方式詳解

用法:

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 删除資料表的三種方式詳解