MySQL刪除數據Delete與Truncate語句應用比擬。本站提示廣大學習愛好者:(MySQL刪除數據Delete與Truncate語句應用比擬)文章只能為提供參考,不一定能成為您想要的結果。以下是MySQL刪除數據Delete與Truncate語句應用比擬正文
空mysqll表內容罕見的有兩種辦法:一種delete,一種是truncate 。 不帶where參數的delete語句可以刪除mysql表中一切內容,應用truncate table也能夠清空mysql表中一切內容。效力上truncate比delete快,但truncate刪除後不記載mysql日記,弗成以恢單數據。
其語法構造為:
TRUNCATE [TABLE] tbl_name
這裡簡略的給出個示例,
我想刪除 friends 表中一切的記載,可使用以下語句:
truncate table friends;
delete的後果有點像將mysql表中一切記載一條一條刪除到刪完,而truncate相當於保存mysql表的構造,從新創立了這個表,一切的狀況都相當於新表。
語法:
delete語句的界說。
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name
[WHERE where_definition]
[ORDER BY ...]
[LIMIT row_count]
MySQL的這些語法都和白話相似,你要指出你想從哪一個表刪除數據,還有刪除哪些數據,這就夠了。就像寫記序文的時刻,時光、所在、人物、情況、情節幾要素必弗成少一樣。
示例是最抽象,最能解釋成績的。所以,不整沒用的了,直接進入主題。依照下面的語法構造,我想刪除 firends 表中一切 user_name 等於 simaopig 的記載,
便可以應用以下SQL語句:
delete from friends where user_name = 'simaopig';delete
留意事項:
從語法構造中,我們便可以看出,和 update 語法一樣,我們是可以省略 where 子句的。不外這是一個很風險的行動。由於假如不指定 where 子句,delete 將刪除表中一切的記載,並且是立刻刪除,即便你想哭都沒有處所,也沒有時光,由於你須要立時和主管認可毛病,而且立刻找出MySQL日記,往返滾記載。不外一旦你有過一次如許的閱歷,我信任這必定是印象深入的。
奇異的是我在innodb上和myisam上年夜數據量下,索引文件極年夜的情形下,簡直弗成能刪除勝利!留待處理。
總結
不外truncate敕令快規快,卻不像delete敕令那樣對事務處置是平安的。是以,假如我們想要履行truncate刪除的表正在停止事務處置,這個敕令就會發生加入並發生毛病信息。