oracle数据库的这个sequence怎么写

2024-12-22 13:08:10
推荐回答(4个)
回答1:

oracle中sequence创建方法及原则。

CREATE SEQUENCE 序列名
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXvalue -- 不设置最大值
NOCYCLE -- 一直累加,不循环
CACHE 10; --设置缓存cache个序列,如果系统down掉了或者其它情况将会导致序列不连续,也可以设置为NOCACHE

回答2:

写一个函数,

create or replace function get_id() return varchar2
is
begin
return to_char(sysdate,'yyyymmdd')||lpad(seq_a.nextval,12,'0')
end;

回答3:

查询:select seq_XX.nextval from daul;

回答4:

在Oracle中要想设置字段自增,序列和触发器组合使用才行。例如:
序列:
create sequence SEQ_XLH
minvalue 1
start with 1
increment by 1
cache 20
order;
首先在emp表增加一列ID类型字符20位:alter table emp add ID char(20);
触发器:
create or replace trigger trig_emp_id
before insert on emp
for each row
begin
select to_char(sysdate,'yyyymmdd')||
substr(to_char(1000000000000+seq_xlh.nextval),-12,12)
into :new.ID from dual;
end;