如题

解决方案 »

  1.   

    oracle里面,建表的时候不能指定某列为自增长的序列,只能先建一个序列,然后向表的字段写值的时候,从序列取即可。
      

  2.   

    在ORACLE中实现自增列方式是序列加触发器
    SQL> --建表
    SQL> create table a(id number,name varchar2(20));
     
    Table created
    SQL> --建序列
    SQL> create sequence seq_a_id start with 1 increment by 1;
     
    Sequence created
    SQL> --建触发器
    SQL> create or replace trigger tr_a
      2  before insert on a
      3  for each row
      4  begin
      5    select seq_a_id.nextval into :new.id from dual;
      6  end;
      7  /
     
    Trigger created
    SQL> --插入数据
    SQL> insert into a(name) values('aa');
     
    1 row inserted
    SQL> insert into a(name) values('bb');
     
    1 row inserted
    SQL> --查询数据
    SQL> select * from a;
     
            ID NAME
    ---------- --------------------
             1 aa
             2 bb
     
    SQL> 
      

  3.   

    oracle序列号必须依靠程序或者触发器生成,不像sql server能设置为子增列。oracle不行
      

  4.   


     insert语句中sequence的使用方法
      

  5.   

    ALTER TABLE 要增加列的表名称 ADD (要增加的列名称1 类型,要增加的列名称2 类型,...)