oracle数据库中表字段增量问题(日期+当前编号)

系统里有张表有一个 报表信息编号 字段 为主键,其类型为VARCHAR2(20),如何设计使其自动增量,并且编号生成规则为:日期+当日编号 例:200812040001。
最新回答
阡陌

2024-10-11 10:40:46

先写一个序列
create sequence SEQ_TIME_STAMP
minvalue 10000
maxvalue 99999
start with 10001
increment by 1
nocache
cycle;

再写个触发器
create or replace trigger 触发器名
before insert on 表名 for each row
begin
Select to_char(sysdate,'yyyymmdd')||seq_time_stamp.nextval
Into :new.报表信息编号
from dual;
end;

当你insert时, 报表信息编号 系统就会自动生成流水号了
上帝的女孩

2024-10-11 09:59:39

用日期+序列号不行的么?

select to_char(sysdate,'yyyyMMDD')||to_char(xh_seq.nextval,'0000') from dual;
夏櫻之雨

2024-10-11 08:36:32

insert into tab1(id) values(to_char(sysdate,'yyyymmdd')||lpad(seq.nextval,4,0))

首先建个序列SEQ,然后插入
♂请叫我包子﹌

2024-10-11 10:38:19

要写个SP了