【发布时间】:2014-02-04 15:35:39
【问题描述】:
我有一个没有主键的表。我需要实现某种在线模式更改,并且我不想更改插入顺序。在 MySQL 文档中,我找到了this:
如果表没有 PRIMARY KEY 或合适的 UNIQUE 索引,InnoDB 会在内部在包含行 ID 值的合成列上生成隐藏的聚集索引。这些行按 InnoDB 分配给此类表中的行的 ID 排序。行 ID 是一个 6 字节的字段,随着新行的插入而单调增加。因此,按行 ID 排序的行在物理上是按插入顺序排列的。
是否可以从似乎有助于解决我的问题的表中获取此值?
【问题讨论】:
-
为什么没有主键?
-
它没有主键提供给我,我想添加它。
-
您可以随时更改您的表格并包含一个自动递增的 ID。即使它通常对您的代码没有任何“价值”,但您至少可以使用它。
-
这是一个公平的问题,所以我给了 +1,但实际上你应该像其他人所说的那样添加主键