mysql自增怎么清楚,mysql重置自增

mysql如何清空表

清空某个mysql表中所有内容

创新互联公司-专业网站定制、快速模板网站建设、高性价比山城网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式山城网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖山城地区。费用合理售后完善,十年实体公司更值得信赖。

delete

from

表名;

truncate

table

表名;

不带where参数的delete语句可以删除mysql表中所有内容,使用truncate

table也可以清空mysql表中所有内容。效率上truncate比delete快,但truncate删除后不记录mysql日志,不可以恢复数据。

delete的效果有点像将mysql表中所有记录一条一条删除到删完,而truncate相当于保留mysql表的结构,重新创建了这个表,所有的状态都相当于新表。

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

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

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

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

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

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

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

怎么重置mysql的自增列AUTO

你是指删除数据后自增的int值不是连续的了吗?这个的话可以先取消增值,然后保存,在勾选自增。(只是自己看着舒服了,不过涉及删除的操作后就又那样了,治标不治本)

这个字段只是为了保证数据的唯一性,实际应用中,不要在jsp页面使用数据库里面那个自增的字段。

将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中id自动增长,如果删除某行数据,再插入新的数据

由于是数据库管理系统内部机制限死的,题主这个需求没有太好的解决方案。

可以考虑在经过一段时间增删数据出现数字不连续情况后,采取删除自增ID字段,再重新添加自增ID字段来消除ID不连续的现象,也可以通过将数据导入含自增ID字段的空表等方法来消除数字间断。

怎么重置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;

注意:TRUNCATE

会清空表中数据

3.drop和create重建表方式重置自增列为0

DROP

TABLE

table_name;

CREATE

TABLE

table_name

{

...

};


本文标题:mysql自增怎么清楚,mysql重置自增
当前链接:http://cdiso.cn/article/dsdjojc.html

其他资讯