一个好普通的问题:如何实现某个字段为自动增长类型?
比如“用户ID”字段,怎样才能使得下一个用户ID自动为上一个用户ID加1,我知道这个在SQL SERVER中定义表的时候可以用一个关键字很容易的实现,那在oracle下有如何才能实现呢???谢谢!!! 问题点数:20、回复次数:14Top
1 楼jaguarcts(xzh2000)回复于 2002-04-17 20:44:34 得分 10
create sequence seq_autoincrease
start with 1
increment by 1
insert into tbl values(seq_qutoincrease.nextval,...)Top
2 楼godown(godown)回复于 2002-04-17 20:45:35 得分 5
建立一个序列,然后再写一个触发器,实现ID自动增量Top
3 楼jlandzpa(jlandzpa)回复于 2002-04-17 23:19:36 得分 0
http://www.csdn.net/expert/topic/603/603560.xml?temp=.2584955Top
4 楼SomeFish(穿西装的老农民)回复于 2002-04-18 10:41:25 得分 5
#就是用每次增1的序列,不过有一问题,那就是如果你在增加记录时并没有提交,那在序列里也会自动加1,这样就造成了ID的不连续,要想连续的话,那只有自己建个表,写个类似序列的程序加以控制了。Top
5 楼cutekid(混混)回复于 2002-04-18 11:22:30 得分 0
oracle中这么简单的东西都要搞得这么麻烦啊Top
6 楼thlong(江米小枣)回复于 2002-04-18 11:23:18 得分 0
用序列可以实现.Top
7 楼dragonhe(可可)回复于 2002-04-18 12:01:05 得分 0
赞成jaguarcts(jaguarcts)的做法,当然如果你嫌麻烦,可以采用触发器哦Top
8 楼cutekid(混混)回复于 2002-04-18 21:05:39 得分 0
谢谢大家的解答先,但是这样子的话确实还有点问题:
如果我将其中一条或几条记录删除,那么就会导致ID不连续
能不能做到无论我如何增删改查,都能保证其ID字段为连续整数?具体怎么做?Top
9 楼cxcgsm()回复于 2002-04-18 23:43:40 得分 0
cutekid:ID号不连续是正常的,正常的ID号是不应该显示出来的。只是在内部作为主键。Top
10 楼xiaohuangtao(绿毛网虫)回复于 2002-04-19 12:33:31 得分 0
create sequence sequence_name on table_nameTop
11 楼cutekid(混混)回复于 2002-04-19 21:38:58 得分 0
真的无法做到连续吗,否则我就没必要设这个字段了Top
12 楼i_am_acheng(一日看尽长安花)回复于 2002-04-19 22:33:51 得分 0
无法做到Top
13 楼reagle(孤独剑客)回复于 2002-04-22 14:56:42 得分 0
关注Top
14 楼hanps()回复于 2002-04-22 15:53:12 得分 0
用sequence
Top
15 楼apboy(没爱,怎么行?)回复于 2002-04-22 16:55:01 得分 0
create sequence table1_no
increment by 1
start with 1
maxvalue 100000000
cycle;
其中table1为你的表名,no是你的字段自动增加一Top




