1、清空表,恢復到初始值:
站在用戶的角度思考問題,與客戶深入溝通,找到福山網(wǎng)站設計與福山網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站建設、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名與空間、網(wǎng)站空間、企業(yè)郵箱。業(yè)務覆蓋福山地區(qū)。
2、修改為任意值:
上述語句中,table_name為表名,15為要修改的值,這樣下次插入的數(shù)據(jù)的自增列的值就是15。
若修改的值與現(xiàn)有數(shù)據(jù)沖突,會自動修改為當前最大值+1。
如圖所示,修改自增列id為11,雖然顯示修改成功,但是id=11已經(jīng)是現(xiàn)有值,再插入時會自動把自增列的值變?yōu)楫斍白畲笾?14)加1,也就是15
方法一: 如果曾經(jīng)的數(shù)據(jù)都不需要的話,可以直接清空所有數(shù)據(jù),并將自增字段恢復從1開始計數(shù)
truncate table
表名
方法二: dbcc checkident ('table_name', reseed,
new_reseed_value) 當前值設置為 new_reseed_value。如果自創(chuàng)建表后沒有將行插入該表,則在執(zhí)行 DBCC CHECKIDENT
后插入的第一行將使用 new_reseed_value 作為標識。否則,下一個插入的行將使用 new_reseed_value + 1。如果
new_reseed_value 的值小于標識列中的最大值,以后引用該表時將產(chǎn)生 2627 號錯誤信息。
方法二不會清空已有數(shù)據(jù),操作比較靈活,不僅可以將自增值歸零,也適用于刪除大量連續(xù)行后,重新設置自增值并插入新的數(shù)據(jù);或從新的值開始,當然不能和已有的沖突。
$sql="delete from $table_vote";
mysql_query($sql, $link);
$sql="alter table $table_vote auto_increment=1";
mysql_query($sql,
$link);
truncate語句,是清空表中的內(nèi)容,包括自增主鍵的信息。truncate表后,表的主鍵就會重新從1開始。
語法:
TRUNCATE
TABLE
table1
delete from table;
ALTER TABLE tbl AUTO_INCREMENT = 100; 100可以改成你想要重新開始自增的值
也就是說不用管每條記錄的id會不會變咯?
方法一:使用select ...into outfile 和 load data infile ...
1.導出除了字段id的所有字段
2.清空表
3.導入數(shù)據(jù)
例子:
#建立測試表 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)
#插入測試數(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)
#查看測試表的數(shù)據(jù),這時候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字段導出到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文件中導入數(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)
方法二:
使用臨時表create table ...select ... 和 insert ...select ...
例子:
#還是lt1表,先清空
mysql truncate table lt1;
Query OK, 0 rows affected (0.08 sec)
#插入測試數(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)建臨時表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ù)據(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)
#將臨時表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
#查看結果,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)
唔,這么辛苦,給個最佳至少啊...