你的位置:
问答吧
-> PHP基础
-> 问题详情
关于mysql自动加1的问题!!
我在mysql里如果把一张表的主关键字设为auto_increment ,那么在添加记录时会自动加1,可是如果删掉一条记录(假设原来有10条记录),然后再添加一条记录的话,主关键字会变为11,而不是10(实际上只有10条记录呀),请问该如何解决这个问题????
作者: zchhhh
发布时间: 2004-05-24
没法解决吧,吼吼。虽然你删了一条,可它还是10,所以再加一条就是11了。主关键字并不记录条数,吼吼。
作者: wild-dog
发布时间: 2004-05-24
那该怎么办呀
作者: zchhhh
发布时间: 2004-05-24
想让它和条数一至该怎么办??
作者: zchhhh
发布时间: 2004-05-24
用文本的方式就可以了
比如说,你原来的"ID"是自动加的,就会出现你说的情况,那么你可以改成不自动加啊?而是用程序算出来再添加到数据库里
不过,以上方法是可以实现你的要求,但有点S
作者: 666home
发布时间: 2004-05-24
可不可以通过修改mysql来设置呀
作者: zchhhh
发布时间: 2004-05-24
你必须按照顺序干什么?
如果要看搜索数量,直接select count(*)就可以了~ 不要钻牛角尖.
作者: kinter
发布时间: 2004-05-24
不是了
想做一个自动生成学号(自动排序)的程序
如果要是删掉一个记录,后面的就连不上了
作者: zchhhh
发布时间: 2004-05-24
删除是正常删除就好了。
添加时 你就把ID按DESC排好
取最高的ID
然后ID+1就是下一个ID了
这不就解决了吗?
作者: flavor
发布时间: 2004-05-24
可是如果要是删除的记录是中间部分的该怎么办呢??
作者: zchhhh
发布时间: 2004-05-24
大家帮忙呀!!
作者: zchhhh
发布时间: 2004-05-24
mysql_query("set @t=0");//不要改
mysql_query("update my_form set fid=@t:=@t+1");//my_form是数据表,fid是自动增加(你要调整)的那个字段名称
之后最好再加一句:mysql_query("OPTIMIZE TABLE my_form");
作者: montluo
发布时间: 2004-05-24
好的,我试试,多谢!!
作者: zchhhh
发布时间: 2004-05-24
那还需要去掉AUTO――INCREASEMENT的选项吗?
作者: zchhhh
发布时间: 2004-05-24
主要是想如果在最前面添加记录,或者是删除最前面的记录以后,顶上去的新的记录还能从1开始计算。
作者: zchhhh
发布时间: 2004-05-24
大家帮忙呀
作者: zchhhh
发布时间: 2004-05-24
顶!!
作者: zchhhh
发布时间: 2004-05-24
命题错误
创建连续号码应该用专门的算法,这是数据完整性方面的问题
楼主的方法看似方便,但有很多问题,比如,你从中间删除一个编号后怎么办?
作者: grow-easy\
发布时间: 2004-05-24
我以前也遇到过这种事,解决方法就是,取消autoincresment,增加一条就+1,减少一条就-1,其它的跟前变动,十分烦琐,并且,如果数据量比较大时,效率低得让人难于接受。
作者: wild-dog
发布时间: 2004-05-24
完全是个算法流程的问题,与auto increasement无关
有无数种方式,看项目的需求来定
作者: s_seraph
发布时间: 2004-05-24
楼主的这个问题可以做个典型:为什么论坛上有很多问题,看起来不难,但是就是没有老鸟来回答。因为这种问题根本就不是技术问题,与PHP或是MYSQL毫无关系,它只是个数据结构与基础算法相结合的流程问题,对于老鸟来说,如果没有一个详细的需求描述,他们无法给出一个合理的答案,还不如不答。而很多新手却会陷入到一个牛角尖里,他们希望能有一个现成的函数或是SQL语法来帮助他们解决问题。而对于老鸟来说,这根本不存在,他们有足够的经验和无数种方式来完成它,因为老鸟们看待问题的出发点不同,层次也不同,问题出现了,首先是要解决它--不管是用多笨的办法,而不是坐在那里发呆,或是立刻飞奔到论坛里发一句话来问。为什么老鸟们会这样,不是他们手里有本关于这类问题的bible,而是他们对于这种问题已经思考过了,而且是在不同的情况之下思考过N次了。。。当我们知道思考的方法及完整的方案思路之后,我们会发现,类似的问题其实是完全大同小异的。
作者: s_seraph
发布时间: 2004-05-24
QUOTE:
最初由 s_seraph 发布
[B]楼主的这个问题可以做个典型:为什么论坛上有很多问题,看起来不难,但是就是没有老鸟来回答。因为这种问题根本就不是技术问题,与PHP或是MYSQL毫无关系,它只是个数据结构与基础算法相结合的流程问题,对于老鸟来说,如果没有一个详细的需求描述,他们无法给出一个合理的答案,还不如不答。而很多新手却会陷入到一个牛角尖里,他们希望能有一个现成的函数或是SQL语法来帮助他们解决问题。而对于老鸟来说,这根本不存在,他们有足够的经验和无数种方式来完成它,因为老鸟们看待问题的出发点不同,层次也不同,问题出现了,首先是要解决它--不管是用多笨的办法,而不是坐在那里发呆,或是立刻飞奔到论坛里发一句话来问。为什么老鸟们会这样,不是他们手里有本关于这类问题的bible,而是他们对于这种问题已经思考过了,而且是在不同的情况之下思考过N次了。。。当我们知道思考的方法及完整的方案思路之后,我们会发现,类似的问题其实是完全大同小异的。 [/B]说的非常不错
作者: sky_travel
发布时间: 2004-05-24