create table foo( 
  id number primary key, 
  data varchar2(100)); create sequence foo_seq; create or replace trigger bifer_foo_id_pk 
  before insert 
    on foo 
    for each row 
begin 
  select foo_seq.nextval into :new.id from dual; 
end; 
/ insert into foo(data) 
  values('Chirstopher'); insert into foo(id,data) 
  values(5,'Sean'); select * from foo;

解决方案 »

  1.   

    CREATE SEQUENCE USERID INCREMENT BY 1 START WITH 1 
        MAXVALUE 1.0E28 MINVALUE 1 NOCYCLE 
        NOCACHE NOORDER;CREATE OR REPLACE TRIGGER USERADD
    BEFORE INSERT ON MEMBERRG
    FOR EACH ROW
    BEGIN
        SELECT LPAD(USERID.NEXTVAL,4,'0') INTO :NEW.NUM FROM DUAL;
    END;
      

  2.   

    1、建一个序列,用来生成信息编号(只建一次)。
    sql>CREATE SEQUENCE USERID INCREMENT BY 1 START WITH 1 
        MAXVALUE 1.0E28 MINVALUE 1 NOCYCLE 
        NOCACHE NOORDER;
    2、每次个人信息表每增加一条记录时,直接取序列值就可以。
    sql>insert into table_name(id编号,个人信息)values(useid.nextval,'个人信息');
      

  3.   

    更正:
    sql>insert into table_name(id编号,个人信息)values(userid.nextval,'个人信息');
      

  4.   

    同意dlmaomao(猫猫)
    很简单了
      

  5.   

    现在要根据规则写了,要根据人的住址详址生成信息编号,规则是***路***弄***号,大家给出出主意,数据库是Oracle9。