insert into admin(adminid,adminname,password)
values(ADMINID.NEXTVAL,'xxx','xxx');

解决方案 »

  1.   

    或者建一个触发器自动完成,如
    create or replace trigger tr1
    before insert on admin
    for each row
    begin
    select adminid.nextval into :new.adminid from dual;
    end;
    /-----------------
    然后就可以在admin表的adminid上随便插什么数据都能自动按序列值增长了。
      

  2.   

    要是这是空表可以吗?我是这样写的:
    insert into admin(adminid,username,password)
    values(adminid.nextval,'sa,'admin')为什么提示如下错误:
    ERROR 位于第 2 行:
    ORA-02289: 序列(号)不存在
      

  3.   

    njhart2003() 兄:begin
    select adminid.nextval into :new.adminid from dual;
    end;中的dual 是什么?
      

  4.   

    序列要先建好,dual是一个表。整个试验过程如下:SQL> create sequence adminid start with 1 increment by 1 ;序列已创建。SQL> create table admin(
      2  adminid      number,
      3  adminname    varchar2(20),
      4  password     varchar2(20)
      5  );表已创建。SQL> create or replace trigger tr1
      2  before insert on admin
      3  for each row
      4  begin
      5  select adminid.nextval into :new.adminid from dual;
      6  end;
      7  /触发器已创建SQL> select * from admin;未选定行SQL> begin
      2  for x in 1..5 loop
      3  insert into admin values(round(dbms_random.value(1,100)),'test'||x,'pwd'||x);
      4  end loop;
      5  end;
      6  /PL/SQL 过程已成功完成。SQL> select * from admin;ADMINID ADMINNAME            PASSWORD
    ------- -------------------- --------------------
          2 test1                pwd1
          3 test2                pwd2
          4 test3                pwd3
          5 test4                pwd4
          6 test5                pwd5已选择5行。
      

  5.   

    我第一次运行的时候是成功的!可是第二次插入行数据时,就提示如下错误:ORA-01422:实际返回的行数超出其你请求的行数
    ORA-06512:在“触发器..”,line 2
    ORA-04088: 触发器“....”执行过程中出错!这又是什么原因呢?