pl sql触发器从序列中插入值
我得到的错误如下:pl sql触发器从序列中插入值,sql,oracle,plsql,triggers,Sql,Oracle,Plsql,Triggers,我得到的错误如下: create table userdetail( userdetailsid number(3) not null, userid varchar2(5), firstname varchar2(15), lastname varchar2(15), email varchar2(15), primary key (userdetailsid) ); create sequence Iseq start with 1 increment by 1;
create table userdetail(
userdetailsid number(3) not null,
userid varchar2(5),
firstname varchar2(15),
lastname varchar2(15),
email varchar2(15),
primary key (userdetailsid)
);
create sequence Iseq
start with 1
increment by 1;
create or replace trigger userDetailInsert
before insert on userdetail
begin
:userdetailsid:=Iseq.nextval;
end;
将
:
从:userdetailsid
中删除,或将:old.
/:new
与一起用于每行
:
Error at line 2: PLS-00049: bad bind variable 'USERDETAILSID'
如果使用的是:
,则列名将被视为一个
一般来说,如果要引用旧值或新值,请使用
:old.userdetailsid
resp<代码>:new.userdetailsid谢谢,但是当我删除“:”时,仍然会遇到另一个错误,第2行的错误:PL/SQL:Statement被忽略1。创建或替换触发器userDetailInsert 2。在userdetail 3上插入之前。从4开始。userdetailsid:=Iseq.nextval;好的,我不确定您试图实现什么,但我认为您想用序列值覆盖所有id
?在这种情况下,您需要为每行添加,:新建。
。请参见上面的更改:)
create or replace trigger userDetailInsert
before insert on userdetail for each row
begin
:new.userdetailsid:=Iseq.nextval;
end;