MYSQL中表格ID自动增加问题
发布网友
发布时间:2022-04-10 19:29
我来回答
共4个回答
热心网友
时间:2022-04-10 20:58
你的ID号这么有规律 从1开始的话
那可以 增加数据时
先 select count(*) from test 获取记录条数 和最大 ID比 如果不相等
那说明 有删除字段
那就
1 取消ID为自增字段
2 查询最小未使用的ID号 然后插入数据
3 再设置ID为自增字段
实际上 步骤2的sql语句有点麻烦。 效率也很低
我的建议是如下:
create table test (
id int auto_increment primary key,
deleteflag int ,
user char(30) not null,
pass varchar(30) not null);
增加一个deleteflag 标记 正常数据deleteflag 为 0
删除数据的时候 只是将deleteflag 标志设置为1
那样的话 增加数据时 只要update就可以了
读取select min(id) from test where deleteflag=1
update test deleteflag=0, 。。。。。。。。where deleteflag=1 and id=minID
热心网友
时间:2022-04-10 22:16
no way.
没有办法,数据库结构就是这样的,ID自动增加,如果该id跟其它表有关联,删除之后其它表再自动增加,id就会错乱了。
热心网友
时间:2022-04-10 23:51
你肯定是在某个地方用到了这些id号所以一旦数据库里面乱了你那里也就over了~
其实很简单,你只要把读取的数据稍微做个处理排下序就可以了~,不用管你输入的时候序号是什么,这样你哪里都能用了~
例子:
$count=0;
$sql="select * from test where '条件' order by id asc";
$result=mysql_query($sql);
while($rows=mysql_fetch_row($result)){
$count++;
$rows['id']=$count;
}
那后你就可以到处去用排好序的$rows了~
热心网友
时间:2022-04-11 01:42
这样是不可能的