当先锋百科网

首页 1 2 3 4 5 6 7

清空MySQL表,如何使ID重新从1自增???

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

我们需要准备的材料分别是:电脑、Mysql查询器。

1、首先,打开Mysql查询器,连接上相应的mysql连接。

2、鼠标右击需要清空自增ID的表,选择“设计表”,再将选项卡切换到“设置”栏,会发现虽然清空了表,但是自动递增的数值仍然没有变回1。

3、在自动递增栏,将数值更改为数字1,并点击“保存”按钮。

4、此时会发现,再新增数据时,ID自动从1开始递增了。

怎么重置mysql的自增列AUTO

重置 MySQL 自增列 AUTO_INCREMENT 初时值 (注意,使用以下任意方法都会将现有数据删除。)

方法一:

delete from tb1;

ALTER TABLE tbl AUTO_INCREMENT = 100; (好处,可以设置 AUTO_INCREMENT 为任意值开始) 提示:如果表列和数据很多, 速度会很慢,如90多万条,会在10分钟以上。

方法二:

truncate tb1; (好处, 简单, AUTO_INCREMENT 值重新开始计数.)

怎么重置mysql的自增列:

1. 支持设置自增列的值

ALTER TABLE table_name AUTO_INCREMENT = 1;

不过这种方式自能设置大于当前使用的值,不能设置小于等于当前已经使用的自增列的值。myisam如果设置小于等于,则自增列的值会自动设置为

当前最大值加1。innodb则不会改变。

2.通过TRUNCATE把自增列设置为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 { ... };

mysql 自增长字段清零

如果表里没别的数据的话,建议删了重建个。(自动编号就算你把表里记录清空,那个编号到哪还是到哪,不会因为你清空表而变为"0"的!)

你也可以建个备用,当一个不用时,把那个备用的复制一下,再把表名改过来就可以了,这样免了你删了后还要重新设计表。

mysql中id(自动递增)如何清零?

自动递增的id不能清零,即时删除后也会继续增加。

手动方法是把该字段删除,然后重新建立同名字段,仍旧设置为自动递增。新增数据即从1开始。

将mysql自增id字段清零,

也就是说不用管每条记录的id会不会变咯?

方法一:使用select ...into outfile 和 load data infile ...

1.导出除了字段id的所有字段

2.清空表

3.导入数据

例子:

#建立测试表 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)

#插入测试数据

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的数据

mysql delete from lt1 where id=4;

Query OK, 1 row affected (0.08 sec)

#查看测试表的数据,这时候id不连续。

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文件中导入数据到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

#现在id连续了

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)

#插入测试数据,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)

#创建临时表lt11

mysql create table lt11 select v1,v2 from lt1;

Query OK, 4 rows affected (0.11 sec)

Records: 4 Duplicates: 0 Warnings: 0

#临时表的数据

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的数据插入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已经连续。

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)

唔,这么辛苦,给个最佳至少啊...

mysql如何清空表

mysql有两种方式可以清空表。分别为:delete from 表名和truncate table 表名。

delete from 表名,删除表数据,全部删除则是可以清空表,相当于一条条删除,需要注意的是,如果有字段是自增的(一般为id),这样删除后,id 值还是存在的。举例来说,就是加入你在删除之前最大的id为100,你用这种方式清空表后 ,新插入一条数据其id为101,而不是1。

2.truncate table 表名,直接清空表,相当于重建表,保持了原表的结构,id也会清空。相当于保留mysql表的结构,重新创建了这个表,所有的状态都相当于新表。效率上truncate比delete快,但truncate删除后不记录mysql日志,不可以恢复数据。