mysql中刪除記錄TRUNCATE與DELETE區別

來源:互聯網
上載者:User

TRUNCATE用法

TRUNCATE [TABLE] tbl_name

我想刪除 friends 表中所有的記錄,可以使用如下語句:

truncate table friends;


DELETE用法

DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name 
[WHERE where_definition] 
[ORDER BY ...] 
[LIMIT row_count]

多表文法:

DELETE [LOW_PRIORITY] [QUICK] [IGNORE] 
tbl_name[.*] [, tbl_name[.*] ...] 
FROM table_references 
[WHERE where_definition]

例子

DELETE FROM somelog 
WHERE user = 'jcole'
ORDER BY timestamp_column 
LIMIT 1;

同時刪除許多個表中的行,並使用其它的表進行搜尋:

DELETE t1, t2 FROM t1, t2, t3 WHERE t1.id=t2.id AND t2.id=t3.id;

或:

DELETE FROM t1, t2 USING t1, t2, t3 WHERE t1.id=t2.id AND t2.id=t3.id;

TRUNCATE 命令與 DELETE 命令區別

1、TRUNCATE在各種表上無論是大的還是小的都非常快。如果有ROLLBACK命令DELETE將被撤銷,而TRUNCATE則不會被撤銷。
2、TRUNCATE是一個DDL語言,向其他所有的DDL語言一樣,他將被隱式提交,不能對TRUNCATE使用ROLLBACK命令。
3、TRUNCATE將重新設定高水平線和所有的索引。在對整個表和索引進行完全瀏覽時,經過TRUNCATE操作後的表比DELETE操作後的表要快得多。
4、TRUNCATE不能觸發任何DELETE觸發器。
5、不能授予任何人清空他人的表的許可權。
6、當表被清空後表和表的索引講重新設定成初始大小,而delete則不能。
7、不能清空父表。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.