id自增
    一篇: 
首先,你要有一张表! 
CREATE TABLE example( 
ID Number(4) NOT NULL PRIMARY KEY, 
NAME VARCHAR(25), 
PHONE VARCHAR(10), 
ADDRESS VARCHAR(50)); 
然后,你需要一个自定义的sequence 
CREATE SEQUENCE emp_sequence 
INCREMENT BY 1 -- 每次加几个 
START WITH 1 -- 从1开始计数 
NOMAXVALUE -- 不设置最大值 
NOCYCLE -- 一直累加,不循环 
NOCACHE -- 不建缓冲区 
以上代码完成了一个序列(sequence)的建立过程,名称为emp_sequence,范围是从1开始到无限大(无限大的程度是由你机器决定的),nocycle 是决定不循环,如果你设置了最大值那么你可以用cycle 会使seq到最大之后循环.对于nocache顺便说一下如果你给出了cache值那么系统将自动读取你的cache值大小个seq,这样在反复操作时会加快运行速度,但如果遭遇意外情况如当机了或Oracle死了,则下次取出的seq值将和上次的不连贯.(如果连不连贯无所谓建议用cache,因为时间就是金钱呀!跑题了!) 
你只有了表和序列还不够,还需要一个触发器来执行它!代码如下: 
CREATE TRIGGER "触发器名称" BEFORE 
INSERT ON example FOR EACH ROW WHEN (new.id is null) 
begin 
select emp_sequence.nextval into: new.id from dual; 
end; 
打完收工!下面你就试试插入数据吧! 
另一篇: 
学oracle不久,在建表时发现这样一个问题,比如我现在创建一个表:student 
create table STUDENT 
( 
ID NUMBER not null, 
NAME VARCHAR2(20) default '男', 
SEX VARCHAR2(4), 
ADDRESS VARCHAR2(40), 
MEMO VARCHAR2(60) 
) 
现在我想实现每插入一条数据,就让id自动增长1.在SQLSERVER中这个很好实现,但在oracle中我搞了半天,查了下资料发现要用到“序列(sequence)”,“触发器”的知识。 
首先,创建一个序列: 
create sequence STU 
minvalue 1 
maxvalue 999999999999 
start with 21 
increment by 1 
cache 20; 
然后,给表student创建一个触发器: 
create or replace trigger stu_tr 
before insert on student 
for each row 
declare 
-- local variables here 
begin 
select stu.nextval into :new.id from dual; 
end stu_tr; 
******************************************************************************************************************************* 
下面用一个例子来说明自增主键的创建: 
1、建用户数据表 
      drop table dectuser; 
      create table dectuser( 
           userid integer primary key, /*主键,自动增加*/ 
           name varchar2(20), 
          sex varchar2(2) 
           ); 
2、创建自动增长序列 
      drop sequence dectuser_tb_seq; 
      create sequence dectuser_tb_seq minvalue 1 maxvalue 99999999 
               increment by 1 
               start with 1;   /*步长为1*/ 
3、创建触发器 
      create or replace trigger dectuser_tb_tri 
          before insert on dectuser     /*触发条件:当向表dectuser执行插入操作时触发此触发器*/ 
           for each row                 /*对每一行都检测是否触发*/ 
           begin                        /*触发器开始*/ 
                 select dectuser_tb_seq.nextval into :new.userid from dual;   /*触发器主题内容,即触发后执行的动作,在此是取得序列dectuser_tb_seq的下一个值插入到表dectuser中的userid字段中*/ 
            end; 
           /*退出sqlplus行编辑*/ 
4、提交 
       commit; 
       现在就完成了自增主键的设定,搞定!可以检测一下。 
      insert into