写个存储过程执行下面语句。
我们一直强调成都做网站、网站制作对于企业的重要性,如果您也觉得重要,那么就需要我们慎重对待,选择一个安全靠谱的网站建设公司,企业网站我们建议是要么不做,要么就做好,让网站能真正成为企业发展过程中的有力推手。专业网站设计公司不一定是大公司,创新互联公司作为专业的网络公司选择我们就是放心。
--每天自动删除sequence,和新建sequence
drop sequence emp_sequence;
CREATE SEQUENCE emp_sequence
START WITH 1 -- 从1开始计数
INCREMENT BY 1 -- 每次加几个
NOMAXVALUE -- 不设置最大值
MAXVALUE 9999999 --比如需要设置最大值为9999999
NOCYCLE -- 一直累加,不循环
CACHE 10 ; ----这个设置了后会自动放内存里,加快存取速度,可以不设置。
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;
修改完成。简单吧
当然可以
CREATE SEQUENCE emp_sequence --创建序列emp_sequence
INCREMENT BY 1 -- 每次加几
START WITH 0 -- 从0开始计数
MINVALUE 0 --设置最小值,这句一定要加,不加的话默认为1,你就无法从0开始计数了
NOMAXVALUE -- 不设置最大值
NOCYCLE -- 一直累加,不循环
CACHE 10;
要想清零,必须删掉,然后重新建立。
删除:DROP
SEQUENCE
sequence_name;
alter只能修改除start至以外的所有sequence参数;
新建:Sequence
CREATE
SEQUENCE
emp_sequence
INCREMENT
BY
1
--
每次加几个
START
WITH
1
--
从1开始计数
NOMAXVALUE
--
不设置最大值
NOCYCLE
--
一直累加,不循环
CACHE
10
NOORDER;
--并行时取得序列的顺序
序列本身没办法直接归零,只能是删掉然后重建。删除序列要用到drop语句和建立的create语句都是ddl语句,在存储过程中是没办法应用的。个人建议写成一个sql脚本,然后在操作系统层面设定为每隔一年运行一次。