清空MySQL表,使ID重新從1自增的步驟如下:

創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站和成都聯(lián)通服務(wù)器托管的網(wǎng)絡(luò)公司,有著豐富的建站經(jīng)驗(yàn)和案例。
我們需要準(zhǔn)備的材料分別是:電腦、Mysql查詢器。
1、首先,打開Mysql查詢器,連接上相應(yīng)的mysql連接。
2、鼠標(biāo)右擊需要清空自增ID的表,選擇“設(shè)計(jì)表”,再將選項(xiàng)卡切換到“設(shè)置”欄,會(huì)發(fā)現(xiàn)雖然清空了表,但是自動(dòng)遞增的數(shù)值仍然沒有變回1。
3、在自動(dòng)遞增欄,將數(shù)值更改為數(shù)字1,并點(diǎn)擊“保存”按鈕。
4、此時(shí)會(huì)發(fā)現(xiàn),再新增數(shù)據(jù)時(shí),ID自動(dòng)從1開始遞增了。
重置 MySQL 自增列 AUTO_INCREMENT 初時(shí)值 (注意,使用以下任意方法都會(huì)將現(xiàn)有數(shù)據(jù)刪除。)
方法一:
delete from tb1;
ALTER TABLE tbl AUTO_INCREMENT = 100; (好處,可以設(shè)置 AUTO_INCREMENT 為任意值開始) 提示:如果表列和數(shù)據(jù)很多, 速度會(huì)很慢,如90多萬條,會(huì)在10分鐘以上。
方法二:
truncate tb1; (好處, 簡(jiǎn)單, AUTO_INCREMENT 值重新開始計(jì)數(shù).)
怎么重置mysql的自增列:
1. 支持設(shè)置自增列的值
ALTER TABLE table_name AUTO_INCREMENT = 1;
不過這種方式自能設(shè)置大于當(dāng)前使用的值,不能設(shè)置小于等于當(dāng)前已經(jīng)使用的自增列的值。myisam如果設(shè)置小于等于,則自增列的值會(huì)自動(dòng)設(shè)置為
當(dāng)前最大值加1。innodb則不會(huì)改變。
2.通過TRUNCATE把自增列設(shè)置為0,從MySQL 5.0.13開始TRUNCATE就能重置自增列為0.myisam和innode都是如此。
TRUNCATE TABLE table_name;
3.drop和create重建表方式重置自增列為0
DROP TABLE table_name;
CREATE TABLE table_name { ... };
如果表里沒別的數(shù)據(jù)的話,建議刪了重建個(gè)。(自動(dòng)編號(hào)就算你把表里記錄清空,那個(gè)編號(hào)到哪還是到哪,不會(huì)因?yàn)槟闱蹇毡矶優(yōu)?0"的!)
你也可以建個(gè)備用,當(dāng)一個(gè)不用時(shí),把那個(gè)備用的復(fù)制一下,再把表名改過來就可以了,這樣免了你刪了后還要重新設(shè)計(jì)表。
自動(dòng)遞增的id不能清零,即時(shí)刪除后也會(huì)繼續(xù)增加。
手動(dòng)方法是把該字段刪除,然后重新建立同名字段,仍舊設(shè)置為自動(dòng)遞增。新增數(shù)據(jù)即從1開始。
也就是說不用管每條記錄的id會(huì)不會(huì)變咯?
方法一:使用select ...into outfile 和 load data infile ...
1.導(dǎo)出除了字段id的所有字段
2.清空表
3.導(dǎo)入數(shù)據(jù)
例子:
#建立測(cè)試表 lt1
mysql create table lt1(id int(10) auto_increment,v1 int(10) default 0,v2 int(10
) default 0,primary key(id))engine=innodb,default charset=utf8;
Query OK, 0 rows affected (0.11 sec)
#插入測(cè)試數(shù)據(jù)
mysql insert into lt1(v1,v2) values(1,1),(2,2),(3,3),(4,4),(5,5);
Query OK, 5 rows affected (0.06 sec)
Records: 5 Duplicates: 0 Warnings: 0
#刪除id=4的數(shù)據(jù)
mysql delete from lt1 where id=4;
Query OK, 1 row affected (0.08 sec)
#查看測(cè)試表的數(shù)據(jù),這時(shí)候id不連續(xù)。
mysql select * from lt1;
+----+------+------+
| id | v1 | v2 |
+----+------+------+
| 1 | 1 | 1 |
| 2 | 2 | 2 |
| 3 | 3 | 3 |
| 5 | 5 | 5 |
+----+------+------+
4 rows in set (0.00 sec)
#將表中的v1,v2字段導(dǎo)出到lt1.xls中。
mysql select v1,v2 from lt1 into outfile 'd:/localdmp/data/lt1.xls';
Query OK, 4 rows affected (0.03 sec)
#清空lt1
mysql truncate table lt1;
Query OK, 0 rows affected (0.08 sec)
#從lt1.xls文件中導(dǎo)入數(shù)據(jù)到lt1中,注意指定字段名(v1,v2)。
mysql load data infile 'd:/localdmp/data/lt1.xls' into table lt1(v1,v2);
Query OK, 4 rows affected (0.08 sec)
Records: 4 Deleted: 0 Skipped: 0 Warnings: 0
#現(xiàn)在id連續(xù)了
mysql select * from lt1;
+----+------+------+
| id | v1 | v2 |
+----+------+------+
| 1 | 1 | 1 |
| 2 | 2 | 2 |
| 3 | 3 | 3 |
| 4 | 5 | 5 |
+----+------+------+
4 rows in set (0.00 sec)
方法二:
使用臨時(shí)表create table ...select ... 和 insert ...select ...
例子:
#還是lt1表,先清空
mysql truncate table lt1;
Query OK, 0 rows affected (0.08 sec)
#插入測(cè)試數(shù)據(jù),id 1-5
mysql insert into lt1(v1,v2) values(1,1),(2,2),(3,3),(4,4),(
Query OK, 5 rows affected (0.06 sec)
Records: 5 Duplicates: 0 Warnings: 0
mysql select * from lt1;
+----+------+------+
| id | v1 | v2 |
+----+------+------+
| 1 | 1 | 1 |
| 2 | 2 | 2 |
| 3 | 3 | 3 |
| 4 | 4 | 4 |
| 5 | 5 | 5 |
+----+------+------+
5 rows in set (0.00 sec)
#把id=4刪除
mysql delete from lt1 where id=4;
Query OK, 1 row affected (0.06 sec)
mysql select * from lt1;
+----+------+------+
| id | v1 | v2 |
+----+------+------+
| 1 | 1 | 1 |
| 2 | 2 | 2 |
| 3 | 3 | 3 |
| 5 | 5 | 5 |
+----+------+------+
4 rows in set (0.00 sec)
#創(chuàng)建臨時(shí)表lt11
mysql create table lt11 select v1,v2 from lt1;
Query OK, 4 rows affected (0.11 sec)
Records: 4 Duplicates: 0 Warnings: 0
#臨時(shí)表的數(shù)據(jù)
mysql select *from lt11;
+------+------+
| v1 | v2 |
+------+------+
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 5 | 5 |
+------+------+
4 rows in set (0.00 sec)
#清空lt1
mysql truncate table lt1;
Query OK, 0 rows affected (0.06 sec)
#將臨時(shí)表lt11的數(shù)據(jù)插入lt1中
mysql insert into lt1 (v1,v2) select v1,v2 from lt11;
Query OK, 4 rows affected (0.06 sec)
Records: 4 Duplicates: 0 Warnings: 0
#查看結(jié)果,id已經(jīng)連續(xù)。
mysql select *from lt1;
+----+------+------+
| id | v1 | v2 |
+----+------+------+
| 1 | 1 | 1 |
| 2 | 2 | 2 |
| 3 | 3 | 3 |
| 4 | 5 | 5 |
+----+------+------+
4 rows in set (0.00 sec)
唔,這么辛苦,給個(gè)最佳至少啊...
mysql有兩種方式可以清空表。分別為:delete from 表名和truncate table 表名。
delete from 表名,刪除表數(shù)據(jù),全部刪除則是可以清空表,相當(dāng)于一條條刪除,需要注意的是,如果有字段是自增的(一般為id),這樣刪除后,id 值還是存在的。舉例來說,就是加入你在刪除之前最大的id為100,你用這種方式清空表后 ,新插入一條數(shù)據(jù)其id為101,而不是1。
2.truncate table 表名,直接清空表,相當(dāng)于重建表,保持了原表的結(jié)構(gòu),id也會(huì)清空。相當(dāng)于保留mysql表的結(jié)構(gòu),重新創(chuàng)建了這個(gè)表,所有的狀態(tài)都相當(dāng)于新表。效率上truncate比delete快,但truncate刪除后不記錄mysql日志,不可以恢復(fù)數(shù)據(jù)。
網(wǎng)站欄目:mysql自增長(zhǎng)怎么清零,mysql刪除自動(dòng)增長(zhǎng)
文章起源:http://chinadenli.net/article31/dsejjsd.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷、靜態(tài)網(wǎng)站、網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)、營(yíng)銷型網(wǎng)站建設(shè)、虛擬主機(jī)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)