首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

Oracle自增字段有关问题

2011-12-27 
Oracle自增字段问题Oracle如何创建这样的一个自增字段,格式如:YYYYMMDD-0000X,YYYYMMDD是当天的年月日,X是

Oracle自增字段问题
Oracle如何创建这样的一个自增字段,格式如:YYYYMMDD-0000X,

  YYYYMMDD是当天的年月日,X是自增的数字,起始从0000X开始.

  



[解决办法]
创建序列是必须的,触发器就不一定必须了。触发器示例如下:

SQL code
create or replace trigger trinamebefore insert on table_name for each rowdeclare  num number;begin  select seq_name.nextval into num from dual;  :new.col := to_char(trunc(sysdate), 'yyyymmdd') ||'-'|| lpad(num, 5, '0');end triname;
[解决办法]
SQL> create table test (id varchar2(20),name varchar2(16));

表已创建。

SQL> create sequence seq_test_id
2 start with 1
3 increment by 1;

序列已创建。

SQL> create or replace trigger trig_test
2 before insert on test
3 for each row
4 declare
5 -- local variables here
6 begin
7 SELECT to_char(SYSDATE,'yyyymmdd')||'-'||lpad(seq_test_id.NEXTVAL,5,'0'
) INTO :new.id FROM dual;
8 end trig_test;
9 /

触发器已创建

SQL> insert into test (name) values ('AC米兰');

已创建 1 行。

SQL> commit;

提交完成。

SQL> select * from test;

ID NAME
-------------------- ----------------
20100324-00002 AC米兰

SQL>




热点排行