使用自增主键维护起来方便. 如果不使用自增主键,必须自己写函数来取最大值,例如:
  select max(colname)+1 from tablename
  但是会引发并发的问题. 如果使用序列,基本不用考虑并发的问题。

解决方案 »

  1.   


     使用自增主键用触发器的话是不是影响数据库的性能
     ----------------------------------------------
      会影响性能,你可以写两个测试程序,一个用触发器,一个
      用序列.nextval,后者速度快.
      

  2.   

    我看到的是 两个都要用。只要用一个序列就可以了???多谢赐教!
    oracle 自增字段第一步:创建SEQUENCE
    create sequence s_country_id increment by 1 start with 1 maxvalue 999999999;第二步:创建一个基于该表的before insert 触发器,在触发器中使用该SEQUENCE
    CREATE OR REPLACE TRIGGER 名
    BEFORE INSERT ON 表
    REFERENCING OLD AS old NEW AS new
    FOR EACH ROW
    BEGIN
        SELECT s_country_id.NEXTVAL INTO :new.列名 FROM dual;  
    END T_A_MemberShipI
      

  3.   

    前触发器只是替你自动生成了自增列的值,在写insert...into语句
      时就不需要考虑自增列了, 这一步工作可以手工完成。
      例如:     insert into tablename(id,col1,col2...)
         values s_country_id.nextval,val1,val2...