类似SQLServer自增计算列如下,给一个表增加一列并这定位自增长
ALTER TABLE XSHXMX 
ADD XSHXMX_DJBH INT IDENTITY(1,1) NOT NULL;把这个翻译成oracle怎么写?
除了建一个序列,写一个触发器
有没有简单的写法?

解决方案 »

  1.   

    oracle貌似没有自增。只能写一个sequences
      

  2.   

    create 一个SEQUENCES 
    在插入数据时调用seqences_name.next 就可以了
      

  3.   


    --oracle中使用序列实现字段自增
    create sequence seq_incre
    minvalue 1
    maxvalue 999
    start with 1
    increment by 1
    nocycle
    /
    --可以通过触发器来实现添加数据时字段自增
    create or replace trigger tri_incre
    before insert on tb_name
    for each row
    begin
         select seq_incre.nextval into :new.tb_incr_col_name from dual;
    end tri_incre;
    /
      

  4.   

    一般就是建sequences,取sequences.nextval不常用还有就是select max(id)+1 from ...oralce中没有自增的
      

  5.   

    另外一个方法就是在添加数据的insert语句中:
    insert into table_name(col_name,...)
    values(seq_incre.nextval,...);
      

  6.   


    --创建SEQUENCE用于实现AUTO_id字段自增
    DROP SEQUENCE Candidates_info_seq;
    CREATE SEQUENCE  Candidates_info_seq
    INCREMENT BY 1
    START WITH 1
    MINVALUE 0
    NOMAXVALUE
    NOCACHE--创建触发器用于实现AUTO_id字段自增
    CREATE OR REPLACE TRIGGER Candidates_info_trig
    BEFORE INSERT ON Candidates_info
    FOR EACH ROW
    BEGIN
      SELECT Candidates_info_seq.NEXTVAL INTO :NEW.Auto_id FROM dual;
    END;
      

  7.   

    oracle没有自增的。sequence来实现的。
      

  8.   

    oracle 
    只能建sequences,取sequences.nextval