【发布时间】:2014-04-12 02:43:10
【问题描述】:
当我在 mysql(phpmyadmin) 中的一列中创建一个新表时,例如
id TEXT auto_increment primarykey
所以当我开始添加项目表 id 列时 1 2 3 4 5 ..... 好的,到目前为止没问题。
假设在我的表中我的 id 为 1 到 45。假设我删除了 id 的 41、42、43、44 和 45。然后我将另一个项目添加到表中。 id 从 46 开始,但我希望它们继续像 41 42 43 .... 一样。
phpmyadmin 中是否有选项部分?
【问题讨论】:
-
如果您不想要它,为什么要使用“auto_incement”?您可以在创建中省略“auto_incement”并使用 select max(id) + 1 from ... 来获取插入新项目的最后一个 id。但是如果你删除了id的2、4、6、8呢?
-
在这种情况下,
id(身份)列是一个代理键,它应该没有其他用途然后唯一地标识一行。如果您需要它来满足其他标准,那么您通常做错了什么。在某些分布式数据库(例如 Teradata)中,您不知道“下一个”值将是什么,并且您永远不需要这样做,只是该值是唯一的。也许如果您能解释为什么您希望所有值都是连续的,我们可以建议不同的模式来满足您的功能需求。但这不太可能是这样。
标签: mysql sql phpmyadmin