mysql清空表語句 truncate和delete from 的區別

來源:互聯網
上載者:User

一、如果mysql表中有AUTO_INCREMENT欄位,在清空資料(delete from)後,AUTO_INCREMENT欄位不會自動初始化為0,而依然是從清空前的記錄後開始自增,需要手動初始化


1、user_0初始狀態使用navicat工具查看)

650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131229/21541U125-0.jpg" title="1.jpg" />


2、在命令列下執行delete from 操作

650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131229/21541U509-1.jpg" title="2.jpg" />

注意delete from 操作會反饋影響到的行數


3、我們再看這個表的結構

650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131229/21541S455-2.jpg" title="3.jpg" />


初始的AUTO_INCREMENT資料 依然在


二、如果使用truncate清空資料,AUTO_INCREMENT欄位不會自動初始化為0

1、恢複表的資料


650) this.width=650;" src="http://img1.51cto.com/attachment/201309/160829824.jpg" title="4.jpg" />


2、使用命令列進行清空操作

650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131229/21541SF3-4.jpg" title="6.jpg" />

這裡使用了truncate命令返回的是0


3、再回來查看錶結構

650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131229/21541SB2-5.jpg" title="5.jpg" />

這裡可以看到AUTO_INCREMENT資訊也不存在了。

所以在使用truncate和delete from 操作是還是有區別


如果想恢複原來的AUTO_INCREMENT 資訊 可以執行如下命令

alter table TABLE_NAME auto_increment=XXXX;


相關文章

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.