步骤1. 创建表、设置非空、主键 
CREATE TABLE example(
                         ID Number(4) NOT NULL PRIMARY KEY,
                         NAME VARCHAR(25),
                         PHONE VARCHAR(10),
                         ADDRESS VARCHAR(50)

                    );
步骤2. 设置为自增,且设定步长
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,因为时间就是金钱呀!)
 
步骤3.  你只有了表和序列还不够,还需要一个触发器来执行它!
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;
打完收工!下面你就试试插入数据吧! INSERT INTO example(Name,phone,address) Values('ma','1234567','shanghai');
 
 
创建表
 
  
  1. SQL> create table address(addressId integer not null primary key, province varchar(20),community varchar(20), street var 
  2. char(20), houseNumber integer); 
  3.  
  4. 表已创建。 
创建序列
 
  
  1. SQL> CREATE SEQUENCE addr_seq 
  2.   2                      INCREMENT BY 1 -- 每次加几个 
  3.   3                      START WITH 1 -- 从1开始计数 
  4.   4                      NOMAXVALUE -- 不设置最大值 
  5.   5                      NOCYCLE -- 一直累加,不循环 
  6.   6                      NOCACHE -- 不建缓冲区 
  7.   7  ; 
  8.  
  9. 序列已创建。 
 
创建触发器
 
  
  1. SQL> CREATE TRIGGER "addr_trigger" BEFORE 
  2.   2                      INSERT ON address FOR EACH ROW WHEN (new.addressId is null
  3.   3              begin 
  4.   4                      select addr_seq.nextval into :new.addressId from dual; 
  5.   5               end
  6.   6  / 
  7.  
  8. 触发器已创建