问一点记录号码的问题

[复制链接]
查看11 | 回复9 | 2005-2-28 12:57:00 | 显示全部楼层 |阅读模式
我有一个日志
里面有个记录号
t00001
t00002
我在下次增加一条纪录的时候
如何自动生成一条新的纪录号
就是上一条加一
比如
最后一条是t00025
我再加上一条纪录的时候
如何得到t00026
我select count(*) 得到纪录的条数
然后加一
但是
前面的0怎么加上去
如何在oracle的得到呢
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
SELECT 't' || LPAD(to_char(count(*)), 5, '0' ) FROM tab;
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
结合楼上的方法
在使用squence就可以满足
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
斑竹干的真的很漂亮
我想再问一点东西
纪录号的位数毕竟有限
所以
如果我把其中的某些纪录删掉以后
我想在插入的新的纪录的时候
重新利用这些记录号
怎么找到这些已经删掉的纪录的记录号
谢谢
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
如何得到最后一条纪录的记录号
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
如何查询
只得到最后一条纪录
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
最初由 chenguanxing 发布
[B]斑竹干的真的很漂亮
我想再问一点东西
纪录号的位数毕竟有限
所以
如果我把其中的某些纪录删掉以后
我想在插入的新的纪录的时候
重新利用这些记录号
怎么找到这些已经删掉的纪录的记录号
谢谢 [/B]

这个一般是自己写一段代码来寻找中间的缺号。
或者自己另外建一个表,每次删除时,把删除的记录号保存下来,以供再次使用。
或者利用另外的方式来寻找缺号,如:
select min(id) from (
select 't' || LPAD(to_char(rownum), 5, '0' ) as id from user_objects, user_objects, user_objects
minus
select record_id from tab
)
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
最初由 chenguanxing 发布
[B]如何得到最后一条纪录的记录号 [/B]

如果你说的“最后一条记录”,是最大的记录号,可以使用:
select max(record_id) from tab;
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
最初由 jaunt 发布
[B]
这个一般是自己写一段代码来寻找中间的缺号。
或者自己另外建一个表,每次删除时,把删除的记录号保存下来,以供再次使用。
或者利用另外的方式来寻找缺号,如:
select min(id) from (
select 't' || LPAD(to_char(rownum), 5, '0' ) as id from user_objects, user_objects, user_objects
minus
select record_id from tab
) [/B]


能再指点一下吗
比如我有个表 log(rc_num char(6) , note varchar(100));
t00001note
t00002note
t00025note
那么这条语句应该怎么写呢
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
最初由 chenguanxing 发布
[B]

能再指点一下吗
比如我有个表 log(rc_num char(6) , note varchar(100));
t00001note
t00002note
t00025note
那么这条语句应该怎么写呢 [/B]

试试
select min(id) from (
select 't' || LPAD(to_char(rownum), 5, '0' ) as id from user_objects, user_objects, user_objects
minus
select rc_num from log
)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行