【发布时间】:2014-11-02 12:48:48
【问题描述】:
我在 MySql 中有一个表,其中包含 user_id 作为第一个字段。该字段是一个主键,它被定义为自动递增。问题是每当我使用命令从表中删除一行时,
delete from user where username="username"; //Username is the Second field
它被删除了,但是当我创建一个新条目时,不会通过覆盖删除的行来调整 user_id。 假设我删除了表中最后一行的第三行,那么我的新条目创建为 user_id = 4 即使 user_id = 3 现在不存在。
这是 Sqlworks 的工作方式还是我应该对查询进行更改?
【问题讨论】:
-
因为user_id是自增主键。
-
这是设计使然。 Auto_increment id 被设计为只能使用一次。
-
我认为您需要对 SQL 的工作原理进行一些研究和阅读
-
这是数据库在自动递增键上的预期行为。如果您想将计数器重置为某个值,可以在此处查看:stackoverflow.com/a/8923132/99557
-
如果你想改变自动增量启动 Id alter table user AUTO_INCREMENT=3;但它提出了一些问题。将用户信息映射到另一个表意味着,该信息将与另一个用户发生冲突。
标签: mysql sql-delete