如何让mysql的自动递增的字段重新从1开始

如何让mysql的自动递增的字段重新从1开始,第1张

1 清空所有数据,将自增去掉,存盘,在加上自增,存盘,就从1开始了

如何让mysql的自动编号从1开始

2 truncate table 你的表名

这样不但将清除数据,而且可以重新位置identity属性的字段

不过以上都不能保留现有数据哦。

以下为设置MySQL自动增长从某个指定的数开始

1 创建表的时候就设置:

CREATE TABLE `Test` (

`ID` int(11) NOT NULL AUTO_INCREMENT,

`class` varchar(2) NOT NULL,

`NAME` varchar(50) NOT NULL,

`SEX` varchar(2) NOT NULL,

PRIMARY KEY (`ID`)

) ENGINE=MEMORY AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC

2 如果在创建表时没有设置,后来想设置,可以通过修改实现:

alter table Test auto_increment = 1000

分类: mysql

可能的反方案:

需要找到系统表,查找到对应该表键对应的计数器,进行修改。

但这样可能引起一系列的系统同步的问题。

如果系统没有提供对自增加值的修改,还是不要改的好。

方法一: 如果曾经的数据都不需要的话,可以直接清空所有数据,并将自增字段恢复从1开始计数

truncate table

表名

方法二: dbcc checkident ('table_name', reseed,

new_reseed_value) 当前值设置为 new_reseed_value。如果自创建表后没有将行插入该表,则在执行 DBCC CHECKIDENT

后插入的第一行将使用 new_reseed_value 作为标识。否则,下一个插入的行将使用 new_reseed_value + 1。如果

new_reseed_value 的值小于标识列中的最大值,以后引用该表时将产生 2627 号错误信息。

方法二不会清空已有数据, *** 作比较灵活,不仅可以将自增值归零,也适用于删除大量连续行后,重新设置自增值并插入新的数据;或从新的值开始,当然不能和已有的冲突。

$sql="delete from $table_vote"

mysql_query($sql, $link)

$sql="alter table $table_vote auto_increment=1"

mysql_query($sql,

$link)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7320601.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存