table1
字段
ID  Number PK(自增字段)
Name varchar2(50)  
我试过sequences,但是很麻烦。我用query做数据集,用DBGRID显示还有DBNavigater ,保存数据时我怎样查询出我建立的sequences的nextval并给ID赋值,
难道要用触发器吗?或者有没有其它的方法?请高手不吝赐教。

解决方案 »

  1.   

    create table auto_numb(n1 number primary key,v1 varchar2(20));create sequence auto_seq;create trigger aut_bri before insert on auto_numbfor each row
    begin
    select auto_seq.nextval into :new.n1 from dual;
    end;
    /insert into auto_numbfor(v1) values('some');
      

  2.   

    CREATE SEQUENCE Seq_Settle_No start with 1 increment by 1table a(Settle_NO,name)insert a(settle_NO, name) values(seq_Settle_NO.nextval, 'aaa');ORACLE 还最好取别名
    create pulic synonym Seq_Settle_No for urname.Seq_Settle_No
      

  3.   

    to   jinjazz(人雅的标记--落寞刺客) 
    table name:systems
    fields: sysID number pk
            SysName varchar2(50) 
    Sequences:SQ_SYSTEMS_ID 
    我建了一个触发器为什么不能用?
    create or replace trigger 
    JIFEI.Auto_sysID 
    before insert on Systems for each row
    begin
    select SQ_SYSTEMS_ID.nextval into :new.SysID from dual;
    end;
      

  4.   

    没有提示,看到触发器上有个叉号,无法使用
    create or replace trigger Auto_sysID
      before insert on systems  
      for each row
      begin
      select SQ_SYSTEMS_ID.nextval into :new.SysID from dual;
    end Auto_sysID;
    为什么在末尾要加上Auto_sysID这一句?
      

  5.   

    哦,我没注意,oracle的申明proc和trigger都要加的
      

  6.   

    to jinjazz(人雅的标记--落寞刺客)
    但是我看到数据库中别人声明的触发器名字是加前缀 jifei. 的,执行没有报错,就是不可用。
    删掉前缀就OK,why????
      

  7.   

    我用这个用户登录的创建了JIFEI.AUTO_SYSID还是不能用啊
    tell me why?
      

  8.   

    在程序中生成一个自增序号,用MD5加密写入数据库是定长的比如说6位,读的时候再用MD5解密加1再生成一个新的序号,这样这个字段一直是定长的而且也是自增的。
      

  9.   

    to y31307(31307) 
    说的详细点,MD5是什么。我是Oracle初学者