Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.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 如何在每次插入或删除查询执行时将所有ID自动增量重置为顺序值。。!_Mysql_Sql - Fatal编程技术网

Mysql 如何在每次插入或删除查询执行时将所有ID自动增量重置为顺序值。。!

Mysql 如何在每次插入或删除查询执行时将所有ID自动增量重置为顺序值。。!,mysql,sql,Mysql,Sql,我有一个名为listings的表,其中有一列,即删除某些行时的列,因此自动插入列即为“ID”非常糟糕的值..比如中间缺少的值,我不喜欢,也不适合专业的方式..因此我想请大家指导我如何在每次插入或删除查询执行时重置行中的所有ID列值 如果您确实想找到最低的未使用键值,则根本不要使用自动增量,而是手动管理您的键值。但是,这不是推荐的做法 正如在 数据库中的主自动增量键用于唯一标识 给定行,不应赋予任何业务含义。所以,离开 按原样添加主键,并添加另一个名为example的列 课程顺序。然后,当您从数据

我有一个名为listings的表,其中有一列,即删除某些行时的列,因此自动插入列即为“ID”非常糟糕的值..比如中间缺少的值,我不喜欢,也不适合专业的方式..因此我想请大家指导我如何在每次插入或删除查询执行时重置行中的所有ID列值

如果您确实想找到最低的未使用键值,则根本不要使用
自动增量
,而是手动管理您的键值。但是,这不是推荐的做法

正如在

数据库中的主自动增量键用于唯一标识 给定行,不应赋予任何业务含义。所以,离开 按原样添加主键,并添加另一个名为example的列 课程顺序。然后,当您从数据库中删除记录时,您可以 要发送额外的UPDATE语句以减少 courseOrder列,其中courseOrder大于 您当前正在删除的一个

作为旁注,您永远不应该修改数据库中主键的值 关系数据库,因为可能有其他表引用 将其作为外键,修改它可能会违反引用 限制

不推荐,但你坚持,所以用这个来重新订购 通过使用类似于:

ALTER TABLE table_name AUTO_INCREMENT = 1;

不建议这样做,因为我们使用ID作为其他表的字段值,这可能会很复杂。所有新的价值观都应该大于以前的价值观,这是专业的方式。有些值丢失是正常的,您可以解决这个问题,如果您遇到问题,请将其发布到stackoverflow上,我们将帮助您。;-)
AUTO_INCREMENT
列的目的是在不进行任何维护的情况下提供唯一值。序列不需要是连续的或不间断的。应该是这样的。你不应该仅仅为了使数字更“整洁”而更改主键值。好吧…现在它有了一些意义..但是你能给我提供手动减量命令吗?在删除记录之后,我将使用手动减量命令。。!所以,只要记录开始,记录就需要递减,不是从一开始,对吗。。?