一条简单的语句 insert into admin(adminid,adminname,password)values(ADMINID.NEXTVAL,'xxx','xxx'); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 或者建一个触发器自动完成,如create or replace trigger tr1before insert on adminfor each rowbeginselect adminid.nextval into :new.adminid from dual;end;/-----------------然后就可以在admin表的adminid上随便插什么数据都能自动按序列值增长了。 要是这是空表可以吗?我是这样写的:insert into admin(adminid,username,password)values(adminid.nextval,'sa,'admin')为什么提示如下错误:ERROR 位于第 2 行:ORA-02289: 序列(号)不存在 njhart2003() 兄:beginselect adminid.nextval into :new.adminid from dual;end;中的dual 是什么? 序列要先建好,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行。 我第一次运行的时候是成功的!可是第二次插入行数据时,就提示如下错误:ORA-01422:实际返回的行数超出其你请求的行数ORA-06512:在“触发器..”,line 2ORA-04088: 触发器“....”执行过程中出错!这又是什么原因呢? Oracle 变更通知的问题。 plsql连oracle数据库,后来plsql卡死了,就结束进程关掉了,但在数据库中查看到原plsql连接的进程却没有断 请教sql? 除了使用视图的instead of触发器,还有其他办法满足这个需求吗? 急救解决ORACLE存储过程返回记录集的问题。 一个有点意思的SQL语句的写法,求工资的 请教一个简单的变量问题? 如何按这种要求导出导入所有的表 高分求助解决问题: 有奖征集两条sql语句 120分在线等高手解决一个简单的触发器问题 oracle存储过程返回值问题
create or replace trigger tr1
before insert on admin
for each row
begin
select adminid.nextval into :new.adminid from dual;
end;
/-----------------
然后就可以在admin表的adminid上随便插什么数据都能自动按序列值增长了。
insert into admin(adminid,username,password)
values(adminid.nextval,'sa,'admin')为什么提示如下错误:
ERROR 位于第 2 行:
ORA-02289: 序列(号)不存在
select adminid.nextval into :new.adminid from dual;
end;中的dual 是什么?
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行。
ORA-06512:在“触发器..”,line 2
ORA-04088: 触发器“....”执行过程中出错!这又是什么原因呢?