本帖最后由 caolong0210 于 2011-07-20 14:46:47 编辑

解决方案 »

  1.   

    oracle 序列CREATE SEQUENCE HIBERNATE_SEQUENCE
    increment by 1
    start with 10000
      minvalue 1
      

  2.   

    Oracle我用的不是很多 嘿嘿
      

  3.   

    建个sequence——>将这个sequence作用于你需要的那张表
      

  4.   


    CREATE OR REPLACE TRIGGER "SET_TABLE_ID" BEFORE
        INSERT  ON "表名"
    FOR EACH ROWDECLARE
      NEXT_ID NUMBER;
    BEGIN
      SELECT 序列名.NEXTVAL INTO NEXT_ID FROM DUAL;
      :NEW."字段" := NEXT_ID;
    END;
      

  5.   

    在orcale里面,不用触发器,无法实现
      

  6.   

    insert into tt1(id) values(sequence.NEXTVAL);
      

  7.   

     oracle没有自增长这一说,只有序列和触发可以做。。记忆是这样,,不做oracle快半年了,现在做安卓
      

  8.   


    sequence 建立好后 在java程序增加记录时 调用sequence如果是纯sql 插入  还是转到oracle区问吧
      

  9.   

    你直接在添加的时候,id这个字段指定到序列不行吗? sequence.nextval,在建序列时让他自动增长为1,那他插入的数据不就是增长为1了么
      

  10.   

    或者使用一个记录当前最大的id的表,每次插入一条新纪录的时候,首先查询出这个id+1,然后更新这个id,然后把查询结果返回出去。
      

  11.   

    insert into tb_house_image
      (imagecode, housecode, houseimage, imagedesc, desc1, desc2)
    values
      (HOUSE_IMAGE_SEQ.NEXTVAL,201,'11111111111111', 1, 1, 1);
    HOUSE_IMAGE_SEQ是tb_house_image表的序列
      

  12.   

    序列会建不..在Sequence文件夹下 新建 名称 里写要建序列表的名称.或者其他的也行.主要是自己认识就行..就像HOUSE_IMAGE_SEQ也可以.开始与 1 吧.因为ID 都是从1开始的啊.然后插入的时候.imagecode插入值对应HOUSE_IMAGE_SEQ.NEXTVAL就行了
      

  13.   

    强烈推荐   在插入语句的id列=序列名.nextval 这就是自动增加   如果采用的是hibernate的话就在映射文件对应的列配置一下就好:
    <id name="id" type="integer" column="id">
                <generator class="sequence">
                <param name="sequence">seq_tab_yunfeiid</param>
                </generator>
            </id>  
      

  14.   

    这个写法正确!
    序列号调用.nextval方法就可以执行插入勒