【发布时间】:2016-05-23 07:27:03
【问题描述】:
以下是我在mysql中的数据库:
Id Username Password
1 admin admin
2 jay jay1
3 suman xyza
4 chintan abcde
这是我在 php 中的代码:
$fetchid = mysql_query(" SELECT MAX(Id) As max From user;");
$row = mysql_fetch_array($fetchid);
$largest = $row['max'];
$largest++;
$user= $_POST['username'];
$pass= $_POST['password'];
$result = mysql_query(" INSERT INTO `proshell`.`user` (
`Id` ,
`Username` ,
`Password`
)"."
VALUES (
'".$largest."', '".$user."', '".$pass."'
);");
问题: 现在,如果我删除 Id=1 的行,然后重新输入数据,那么它应该使用 ID=1,然后我再次重新插入它使用 ID=5 的数据
它的工作原理是这样的: 如果我删除 Id=1 的行,然后重新输入 Id 为 5 的数据,但随后 1 是免费的,
我应该写什么来完成这项任务。
【问题讨论】:
-
不,它不应该使用 ID 1,它应该简单地使用一个新的和唯一的 ID.....AUTOINCREMENT 是关于获取唯一的 ID,而不是连续的 ID......如果你需要一个连续值,那么您需要自己操作它,或者(更有可能)重新考虑为什么您认为您需要从 1 开始编号且没有间隙的连续 id
-
如果您需要更改 ID 1 处的记录,您为什么要尝试删除并重新插入而不是简单地更新
-
@MarkBaker 我说这个数据库有两个用户好吗?因此,如果一个人离开,它将删除他的 ID。好的。如果新人来了,那么它必须创建一个新的 ID,然后就会出现问题。在这里,我有一个小应用程序。但在未来,当超过预期的人加入然后永久离开应用程序时,这可能会成为问题。
-
如果您关心 id,那么您的数据可能会遇到更大的问题。见规范化。