Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 重置表格自动增量并使其应用于表格_Mysql_Sql_Phpmyadmin - Fatal编程技术网

Mysql 重置表格自动增量并使其应用于表格

Mysql 重置表格自动增量并使其应用于表格,mysql,sql,phpmyadmin,Mysql,Sql,Phpmyadmin,我有一个大约有10万行的表,我已经导入了它。ID是我的应用程序的重要列,必须对其进行排序。目前,我得到了类似于:1,2,3,4,5…578992759276 它从5789跳到9275。是否有任何方法可以重置自动增量,但也使其应用于表格?也就是说,现在它将重新开始给他们从1到10k的ID 谢谢 ALTER TABLE AUTO_INCREMENT=; ALTER TABLE <tablename> AUTO_INCREMENT=<new_value>; 当然,您需要手动

我有一个大约有10万行的表,我已经导入了它。ID是我的应用程序的重要列,必须对其进行排序。目前,我得到了类似于:1,2,3,4,5…578992759276

它从5789跳到9275。是否有任何方法可以重置自动增量,但也使其应用于表格?也就是说,现在它将重新开始给他们从1到10k的ID

谢谢

ALTER TABLE AUTO_INCREMENT=;
ALTER TABLE <tablename> AUTO_INCREMENT=<new_value>;
当然,您需要手动修复高ID和对它们的所有引用


然而,你为什么在意?如果身份证上有个洞真的重要吗?如果是,您可能希望使用始终设置为
MAX(col)+1的单独列,而不是自动增量列。

您当然可以通过发出以下查询将自动增量值重置为您想要的值:

ALTER TABLE <tbl> AUTO_INCREMENT = <n>;
ALTER TABLE AUTO_INCREMENT=;

其中tbl是您的表名,n是起始值。但是,如果该表中已有ID,我相信它会简单地将下一个插入项ID设置为ID列的
max(ID)+1

删除该列并重新创建它,这是一个选项,在重置autoincrement之后。您必须。特别是如果有对这些ID的引用。正是由于这个原因,更改id通常是个坏主意。@kfirba,如果需要,您可以编写一个脚本来重新索引id值。更多的工作,但这是你想要的,对吗?@SlyRaskal Theif提到将ID列的设置调用为
MAX(col)+1
,而不是自动递增。什么是
col
?我想尝试一下,如果你按照他的计划,col
只是你决定使用的任何列名的占位符。因为你用phpMyAdmin标记了这篇文章,请注意,你可以从表的Operations选项卡以图形方式完成这项工作。ThiefMaster当然有正确的答案,但是phpMyAdmin让它变得非常简单。什么是
id
?如果我没有列ID,我可以指定其他列?'ID`只是表为auto_increment列设置的任何列名的松散术语。对不起,我应该说得更清楚些。