数据库怎么修改带序号的列表信息

数据库怎么修改带序号的列表信息,第1张

需要先创建序列,然后nextval添加数据使其自动生成序号

1、创建表:

create table test

(id int,

name varchar2(20))

2、创建序列:

Create sequence seq_test_id

Increment by 1

Start with 1

Maxvalue 999999

Minvalue 1

Nocycle

nocache

3、插入数据:

insert into test values (seq_test_id.nextval,'badkano')

4、再插入一条数据:

insert into test values (seq_test_id.nextval,'百度知道团长')

这样可见,序号是添加成功的。

 Oracle 序列(Sequence)主要用于生成流水号,Oracle EBS系统中是经常用到的。但是,有时需要修改序列初始值(START WITH)时,好多人凭感觉认为:Alter Sequence SequenceName Start With N。事实上,在Oracle Db中,修改序列没有这样的语法。没有这样的语法情况怎么办,有二种方法可以完成

1.先删除序列,然后重新创建。不过这不是当前要讲的重点。这个方法比较方便。

2.通过Increment By来实现修改初始值。

例如:若序列名称是SeqTest2010_S,初始值是13,而现在要设置初始值为1020,Increment By值为:1007(1020-13)

2.1 执行:Alter Sequence SeqTest2010_S Increment By 1007

2.2 执行:Select SeqTest2010_S.NextVal From Dual

2.3 执行:Alter Sequence SeqTest2010_S Increment By 1

修改完成。简单吧

根据我自己的经验,oracle的序列是不认自己填写的数字的,所以想要这么 *** 作只能先删除序列才可以。

如果是修改的话,要删除序列才能修改,也就是数艘要分三步 *** 作

(1)删除序列(把语句复制下来),可是也要复制触发器的语句(当然重新编译一下触发器也可以,这样会让触发器无效)

(2)修改序号(至于你说的修改为指定区间,这个简单,比如你要把1-20,改为50001-50020,那么就是id+50000即可,只要where中限定范围就可以了。)

(3)重建序列,并重新设定起始值(至少设定为新的最大值+1),别忘了相关触发器


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9420132.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存