溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MYSQL清空表和截斷表問題如何解決

發布時間:2023-03-13 09:37:26 來源:億速云 閱讀:135 作者:iii 欄目:開發技術

這篇文章主要介紹“MYSQL清空表和截斷表問題如何解決”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“MYSQL清空表和截斷表問題如何解決”文章能幫助大家解決問題。

    MYSQL清空表和截斷表

    清空表和截斷表

    清空表:delete from users;

    清空表只是清空表中的邏輯數據,但是物理數據不清除,如主鍵值、索引等不被清除,還是原來的值。

    截斷表:truncate table users;

    截斷表可以用于刪除表中 的所有數據。截斷表命令還會回收所有索引的分配頁。

    截斷表的執行速度與不帶where子句的delete(刪除)命令相同,甚至比它還要快。

    delete(刪除)一次刪除一行數據,并且將每一行被刪除的數據都作為一個事務記錄日志;而truncate (截斷)表則回收整個數據頁,只記錄很少的日志項。delete(刪除)和truncate(截斷)都會回收被數據占用的空間,以及相關的索引。只有表的 擁有者可以截斷表。

    另外,truncate表之后,如果有自動主鍵的話,會恢復成默認值。

    MYSQL清空表數據的注意事項

    清空表數據 可用的兩種操作:

    delete from 表名;
    
    truncate table 表名;

    兩者比較

    不帶where參數的delete語句可以刪除mysql表中所有內容,使用truncate table也可以清空mysql表中所有內容。

    效率上truncate比delete快,但truncate刪除后不記錄mysql日志,不可以恢復數據。

    delete的效果有點像將mysql表中所有記錄一條一條刪除到刪完,而truncate相當于保留mysql表的結構,重新創建了這個表,所有的狀態都相當于新表。

    我在用delete from 進行刪除時發現報錯了,說時safe updae 模式什么的,后來查看其他小伙伴的博客,發現了解決辦法:

    只需執行  SET SQL_SAFE_UPDATES = 0; 即可。

    關于“MYSQL清空表和截斷表問題如何解決”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女