MySql - 删除一行

时间:2014-09-09 07:23:35

标签: mysql sql-delete

我在MySql中有一个表,其中包含user_id作为First字段。该字段是主键,它被定义为自动递增。问题是每当我使用命令

从表中删除一行时
delete from user where username="username"; //Username is the Second field

它被删除,但是当我创建一个新条目时,不会通过覆盖已删除的行来调整user_id。 假设我删除了表中最后一行的第3行,那么我的新条目创建为user_id = 4,即使user_id = 3现在也不存在。

这是Sqlworks的工作方式,还是应该在查询中进行更改?

1 个答案:

答案 0 :(得分:1)

我建议您创建另一个字段,以便

id | user_id | username

id应为auto_increment

要插入,您可以计算DB中的托管数并提高+1。

然后你会得到你想要的结果。

诅咒你可以使用id,但在这种情况下,你总是要重新索引user_id。

实际上,这不是主键应该使用的方式。

示例:

假设您有一家拥有100名客户的公司。今天,客户50的客户数量为50,明天他有48,因为其他2位客户离开了您的公司。没有意义:D