Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.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
Php 如何连续生成主键?_Php_Mysql - Fatal编程技术网

Php 如何连续生成主键?

Php 如何连续生成主键?,php,mysql,Php,Mysql,假设我的表中有20行,现在我删除了最后4行。在下一次我再插入2行时,主键号将为 1,2,3...16,21,22. 是否有任何方法恢复该键,意味着是否有任何方法将该行存储在16的下一个,结果将是 1,2,3...16,17,18 你不需要这个。 相信我 你不需要这个。 相信我 像瓦迪姆说的那样做有点恶心。 如果你有相关的桌子,这也是一个危险的游戏 类似于这个问题:像瓦迪姆说的那样做有点令人讨厌。 如果你有相关的桌子,这也是一个危险的游戏 类似于这个问题:为什么需要这个 你问为什么不 因为假

假设我的表中有20行,现在我删除了最后4行。在下一次我再插入2行时,主键号将为

1,2,3...16,21,22.
是否有任何方法恢复该键,意味着是否有任何方法将该行存储在16的下一个,结果将是

1,2,3...16,17,18 
你不需要这个。 相信我

你不需要这个。
相信我

像瓦迪姆说的那样做有点恶心。 如果你有相关的桌子,这也是一个危险的游戏


类似于这个问题:

像瓦迪姆说的那样做有点令人讨厌。 如果你有相关的桌子,这也是一个危险的游戏


类似于这个问题:

为什么需要这个

你问为什么不


因为假设您的表是用户-现在当您在此处重新排列键时,POST(例如)中的“posted_by”区域现在将显示不同的用户。。。这是个坏习惯

为什么需要这个

你问为什么不


因为假设您的表是用户-现在当您在此处重新排列键时,POST(例如)中的“posted_by”区域现在将显示不同的用户。。。这是个坏习惯

这是可能的,但会损害您的数据库。如果要这样做,您需要确切地了解您正在做什么,以及它将如何影响数据库中的所有内容(相关表、复制、备份等)。这里有一个关于如何做的链接,但我强烈建议你重新考虑


这是可能的,但会损害您的数据库。如果要这样做,您需要确切地了解您正在做什么,以及它将如何影响数据库中的所有内容(相关表、复制、备份等)。这里有一个关于如何做的链接,但我强烈建议你重新考虑


只要插入/更新的值不违反唯一性,就可以为自动增量列指定一个值。正如其他人建议的那样,你必须确保你不会破坏任何关系。如果您这样做是因为您想在UI中的某个位置显示PK,那么您应该更改表,使其具有DisplayID字段,或者编写一个查询,在按PK排序后返回一个连续迭代器。

只要插入/更新的值不违反唯一性,您就可以为自动增量列指定一个值。正如其他人建议的那样,你必须确保你不会破坏任何关系。如果您这样做是因为您想在UI中的某个位置显示PK,那么您应该更改表以具有DisplayID字段,或者编写一个查询,在按PK排序后返回一个连续的迭代器。

这是破坏数据库完整性的好方法。这将有助于破坏数据库的完整性数据库。这将帮助我获得+1。你不应该想要或需要这样的行为。不要触摸主键,相信Vadim:)如果你想获得序列号列表,你应该创建序列号。但我记得mysql自然不支持序列,所以您可以使用单独的事务安全InnoDB表创建它。你不应该想要或需要这样的行为。不要触摸主键,相信Vadim:)如果你想获得序列号列表,你应该创建序列号。但正如我所记得的,mysql自然不支持序列,所以您可以使用单独的事务安全InnoDB表来创建它。