如何在表中生成一个顺序号,增加数据时自动增长,删除数据时自动减少!

xietangz 2002-04-11 01:08:44


比如:
seq name
1 aa
2 bb
3 cc

增加数据:dd
seq name
1 aa
2 bb
3 cc
4 dd

删除数据: aa

seq name
1 bb
2 cc
3 dd
...全文
225 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
yaotiebing 2002-11-12
  • 打赏
  • 举报
回复
up
zpwly 2002-11-11
  • 打赏
  • 举报
回复
学习
yaotiebing 2002-11-11
  • 打赏
  • 举报
回复
可是如果用id 进行排序这样也不行呀!!
select * from rownum order by rownum;
ERROR 位于第 1 行:
ORA-00903: 无效表名

如何解决用rownum 进行排序呢??
yaotiebing 2002-11-11
  • 打赏
  • 举报
回复
> select rownum ,name from autoid order by name desc;

ROWNUM NAME
------- --------------------
6 f
5 e
4 d
3 c
2 b
1 a
看来rownum 是对应表中数据的实际顺序!!那么时不是就可以取消id 字段直接用rownum 代替呢??
yaotiebing 2002-11-11
  • 打赏
  • 举报
回复
利用rownum 插入的时候出问题
> insert into autoid values(rownum ,'f')
;

唇?1 行。

> select * from autoid;

ID NAME
------- --------------------
1 a
2 b
3 c
4 d
5 e
0 f
rownum 插入的id 为零怎么实现自动增长,难道意思时说,表中根本没有id ??只是在查询的时候用rownum 代替
bzszp 2002-11-11
  • 打赏
  • 举报
回复
是排序后的
yaotiebing 2002-11-11
  • 打赏
  • 举报
回复
如果查询的时候使用order by 用别的字段进行排序,那么rownum 的值是排序前的,还是排序后的(是表中的位置还是内存中排序以后的顺序号)

yaotiebing 2002-11-11
  • 打赏
  • 举报
回复
up
teng 2002-05-05
  • 打赏
  • 举报
回复
gz
xiaohuangtao 2002-04-14
  • 打赏
  • 举报
回复
作为自动增加量,没有必要自动减少啊,SEQUENCE不可以用吗?
FangQ_78 2002-04-14
  • 打赏
  • 举报
回复
xinpingf(白开心) 说得对,这也是唯一的方法了。但是这里有个问题如果记录按照不同的顺序排列怎么办?所以我感觉xietangz () 的做法是不可取的!
xg_delayth 2002-04-14
  • 打赏
  • 举报
回复
sequence只能增不能减,一般只用curval和nextval两个属性,你要做到这样的东东,系统开销太大每增减一次都要改整个表,在大数据量的情况下是不可想象的,还是在查询中用rownum的好。自动增可以用触发器实现。
jaguarcts 2002-04-12
  • 打赏
  • 举报
回复
gz
net_steven 2002-04-12
  • 打赏
  • 举报
回复
在大型关系数据库中表数据的物理存放顺序是无关紧要的。
xietangz 2002-04-12
  • 打赏
  • 举报
回复


请问rownum的顺序是不是按插入表中数据的顺序创建的!
zero_wgh 2002-04-12
  • 打赏
  • 举报
回复
agree up!
ykliu1 2002-04-12
  • 打赏
  • 举报
回复
同意楼上,因为对ORACLE基表,ROWNUM正好表示该记录在表中序列号
xinpingf 2002-04-11
  • 打赏
  • 举报
回复
想满足你的要求太简单了,根本什么也不用做
只是在查询的时候写:
select rownum, col1,col2,……就行了
wuqifeng 2002-04-11
  • 打赏
  • 举报
回复
有啊,oracle中的每个表都有一个默认字段rowid

它就是这样的
blackwh 2002-04-11
  • 打赏
  • 举报
回复
如果这样的话,没必要写入数据库,没什么意义
就在显示的时候加个顺序号久的了,getrow()
加载更多回复(2)

2,598

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧