Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Database/JDBC/SQL/JDO/Hibernate  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
话题被移动
该话题已被移动 - why , 2003-06-22 01:15
如果您尚不清楚该话题被移动的原因,请参考论坛规则以及本版公告或者联系本版版主。
作者 疑惑,求助 (oracle sql语句 避免流水号浪费)
hitdemo2002

max payne



发贴: 210
积分: 50
于 2002-12-18 18:18 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
我要向oracle81中的一个表中插入纪录,
该表由id(主键),name等字段,id为有意义的数字,就想学号一样,id由jsp页面读来的3位数字+3位流水号生成,
譬如说100001,100002,100003.......,流水号最大限制为999,
我的疑惑是:假设表中现有100001,100002......100009,100010十个连续的纪录,现在我又增加了一条,我的insert方法是在DAO中用sql语句max(id)找出最大id 100010,在他后面insert 100011这条记录,过了一会儿,我将100005这条记录删除了,等到下次我再添加纪录时,却还是用max(id)找最大的id 100011,在他后面insert 100012,可是此时100004和100006之间就出现空缺,这样下去的话,流水号达到999时就会出错了(该表实际记录数肯定在500以下),我知道原因是由我在DAO中用先找MAX(ID),然后再接着这个ID插入记录这个方法产生的,但是我不知道其他的方法,
各位大侠,用什么方法或sql语句能实现这样的:
就是当我把100005删除后,下次再添加纪录时,不是在100011后面插入,而是自动找到100004和1000006之间的空缺,发现数字不连续,将纪录插为100005,这样就可以避免流水号浪费。
不知道我表述明白了吗?
请帮忙,多谢多谢。


why edited on 2003-06-22 01:14


话题树型展开
人气 标题 作者 字数 发贴时间
7511 疑惑,求助 (oracle sql语句 避免流水号浪费) hitdemo2002 603 2002-12-18 18:18
5452 Re:疑惑,求助 floweret 174 2002-12-19 09:15

flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923